7

httpd常见配置

 2 years ago
source link: http://abcdxyzk.github.io/blog/2022/08/20/tools-httpd-conf/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

httpd常见配置

2022-08-20 16:29:00

https://www.cnblogs.com/vathe/p/6907742.html

work常用配置

<IfModule worker.c>
StartServers         4
MaxClients         300     # 最大的请求并发数目
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     25     # 每个子进程能同时创建的的线程数目
MaxRequestsPerChild  0     # 每个进程能处理的最大请求数目
</IfModule>
/etc/httpd/conf/httpd.conf     主配置文件

/etc/httpd/conf.d/*.conf     辅助配置文件

配置文件语法检查及重新加载配置文件

[root@node1 conf]$ httpd -t
Syntax OK
[root@node1 conf]$ service httpd reload

修改监听的IP和Port

Listen  [IP:] PORT  [PROTOCOL]
IP     本机的IP,本机可能使用多个网卡,每个网卡可能使用多个IP,故而可以指定特定IP,不指定,默认为监听所有IP
PORT    端口号,不可省略
PROTOCOL  特定协议,例如 https

注:Listen指令在同一文件中,如果需要监听多个目标,Listen可以出现多次

服务器根目录

DocumentRoot "/var/www/html"

ServerName www.example.com:80   # 服务器名称

DirectoryIndex index.html  index.html.var # 站点主页面

AddDefaultCharset UTF-8     # 默认字符集

Alias /icons/ "/var/www/icons/"    # 路径别名

持久化配置

KeepAlive Off | On       # 是否开启长连接

MaxKeepAliveRequests 100  # 保持长连接最大个数

KeepAliveTimeout 15       #  单个连接最长连接时间

动态加载模块

LoadModule <mod_name> <mod_path>
<mod_name> 模块名称
<mod_path> 模块路径,支持使用相对路径,相对于ServerRoot  /etc/httpd

MPM(多路处理模块)配置

httpd -l      # 查看静态模块
httpd -M      # 查看动态加载的模块
CentOS 6
/etc/sysconfig/httpd
# HTTPD=/usr/sbin/httpd.worker    # 注释表示使用默认方式prefork工作,否则表示使用worker方式工作

CentOS7
/etc/httpd/conf.modules.d/00-mpm.conf
LoadModule mpm_worker_module modules/mod_mpm_worker.so
# 注释或打开相关代码

prefork常用配置

<IfModule prefork.c>
StartServers       8       #  起始开启的子进程数
MinSpareServers    5       #  最小空闲子进程数
MaxSpareServers   20       #  最大空闲子进程数
ServerLimit      256       #  最大的进程数
MaxClients       256       #  最大的请求并发数
MaxRequestsPerChild  4000  #  每个子进程最多能处理的请求数
</IfModule>

work常用配置

<IfModule worker.c>
StartServers         4
MaxClients         300     # 最大的请求并发数目
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     25     # 每个子进程能同时创建的的线程数目
MaxRequestsPerChild  0     # 每个进程能处理的最大请求数目
</IfModule>
ErrorLog logs/error_log     # 错误日志目录

LogLevel warn               # 日志记录等级

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined   # 日志格式定义

%h:客户端IP地址;
%l:Remote User, 通常为一个减号(“-”);
%u:Remote user (from auth; may be bogus if return status (%s) is 401);非为登录访问时,其为一个减号;
%t:服务器收到请求时的时间;
%r:First line of request,即表示请求报文的首行;记录了此次请求的“方法”,“URL”以及协议版本;
%>s:响应状态码;
%b:响应报文的大小,单位是字节;不包括响应报文的http首部;
%{Referer}i:请求报文中首部“referer”的值;即从哪个页面中的超链接跳转至当前页面的;
%{User-Agent}i:请求报文中首部“User-Agent”的值;即发出请求的应用程序;

站点访问控制可分为两类,基于文件路径控制和基于URL路径控制。

基于文件路径访问控制

<Directory "DocuRoot">
...
</Directory "DocuRoot">
<FILE "">
...
</FILE "">

<FileMatch "PATTERN">
...
</FileMatch "PATTERN">

基于URL路径访问控制

<Location "">
...
</Location "">

<LocationMatch "">
...
</LocationMatch "">
Option
    Indexes     # 访问的url不存在时,返回父路径的索引列表
    Includes
    FollowSymLinks    # 允许跟踪链接文件所指向的文件
    SymLinksifOwnerMatch  # 仅允许跟踪链接文件属主
    ExecCGI               #  支持CGI脚本
    MultiViews
    All        所有选项,除了 MultiViews
    None    不支持上述选项

AllowOverride   no | yes  是否允许子目录重载特性

黑名单(白名单)

Order allow, deny

[ Allow | Deny ] from
    all
    example.org
    10.1.2.3
    10  172.20

基于用户的访问控制

用户认证类型

  基本认证:Basic,明文发送
  摘要认证:digest

虚拟用户:

仅用于访问某服务或获取某资源的凭证;

账号和密码的存储机制:

  文本文件:.htpasswd
  SQL数据库
  dbm:数据库引擎,提供API
  ldap:
<Directory />
        Options none
        AllowOverride AuthConfig
        AuthType Basic     # 明文发送
        AuthName "admin area"   # 允许访问的用户
        AuthBasicProvider file
        AuthUserFile /etc/httpd/conf/.htpasswd
        Require valid-user     # 文件中所有用户均可访问
        Require group GROUP    # 指定组
        AuthGroupFile GROUP_FILE   # 指定组口令文件
</Directory>

生成认证文件.htpasswd

htpasswd [option] passwdfile username
    选项:
    -c:创建一个passwdfile,如果passwdfile已经存在,那么它会重新写入并删除原有内容
    -m:以md5的格式编码存储用户的密码信息
    -s:sha1加密用户密码;
    -D:删除指定用户

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK