https://www.cnblogs.com/vathe/p/6907742.html 
work常用配置 
1 
2 
3 
4 
5 
6 
7 
8 
<IfModule worker.c>
 StartServers         4
 MaxClients         300     # 最大的请求并发数目
 MinSpareThreads     25
 MaxSpareThreads     75
 ThreadsPerChild     25     # 每个子进程能同时创建的的线程数目
 MaxRequestsPerChild  0     # 每个进程能处理的最大请求数目
 </IfModule> 
 
配置文件 
1 
2 
3 
/etc/httpd/conf/httpd.conf     主配置文件
 
 /etc/httpd/conf.d/*.conf     辅助配置文件 
 
配置文件语法检查及重新加载配置文件 
1 
2 
3 
[root@node1 conf]$ httpd -t
 Syntax OK
 [root@node1 conf]$ service httpd reload 
 
修改监听的IP和Port 
1 
2 
3 
4 
5 
6 
Listen  [IP:] PORT  [PROTOCOL]
 IP     本机的IP,本机可能使用多个网卡,每个网卡可能使用多个IP,故而可以指定特定IP,不指定,默认为监听所有IP
 PORT    端口号,不可省略
 PROTOCOL  特定协议,例如 https
 
 注:Listen指令在同一文件中,如果需要监听多个目标,Listen可以出现多次 
 
服务器根目录 
1 
2 
3 
4 
5 
6 
7 
8 
9 
DocumentRoot "/var/www/html"
 
 ServerName www.example.com:80   # 服务器名称
 
 DirectoryIndex index.html  index.html.var # 站点主页面
 
 AddDefaultCharset UTF-8     # 默认字符集
 
 Alias /icons/ "/var/www/icons/"    # 路径别名 
 
持久化配置 
1 
2 
3 
4 
5 
KeepAlive Off | On       # 是否开启长连接
 
 MaxKeepAliveRequests 100  # 保持长连接最大个数
 
 KeepAliveTimeout 15       #  单个连接最长连接时间 
 
动态加载模块 
1 
2 
3 
LoadModule <mod_name> <mod_path>
 <mod_name> 模块名称
 <mod_path> 模块路径,支持使用相对路径,相对于ServerRoot  /etc/httpd 
 
MPM(多路处理模块)配置 
查看 
1 
2 
httpd -l      # 查看静态模块
 httpd -M      # 查看动态加载的模块 
 
更换 
1 
2 
3 
4 
5 
6 
7 
8 
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常用配置 
1 
2 
3 
4 
5 
6 
7 
8 
<IfModule prefork.c>
 StartServers       8       #  起始开启的子进程数
 MinSpareServers    5       #  最小空闲子进程数
 MaxSpareServers   20       #  最大空闲子进程数
 ServerLimit      256       #  最大的进程数
 MaxClients       256       #  最大的请求并发数
 MaxRequestsPerChild  4000  #  每个子进程最多能处理的请求数
 </IfModule> 
 
work常用配置 
1 
2 
3 
4 
5 
6 
7 
8 
<IfModule worker.c>
 StartServers         4
 MaxClients         300     # 最大的请求并发数目
 MinSpareThreads     25
 MaxSpareThreads     75
 ThreadsPerChild     25     # 每个子进程能同时创建的的线程数目
 MaxRequestsPerChild  0     # 每个进程能处理的最大请求数目
 </IfModule> 
 
日志配置 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
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路径控制。
基于文件路径访问控制 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
<Directory "DocuRoot">
 ...
 </Directory "DocuRoot">
 <FILE "">
 ...
 </FILE "">
 
 <FileMatch "PATTERN">
 ...
 </FileMatch "PATTERN"> 
 
基于URL路径访问控制 
1 
2 
3 
4 
5 
6 
7 
<Location "">
 ...
 </Location "">
 
 <LocationMatch "">
 ...
 </LocationMatch ""> 
 
常见选项 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
Option
     Indexes     # 访问的url不存在时,返回父路径的索引列表
     Includes
     FollowSymLinks    # 允许跟踪链接文件所指向的文件
     SymLinksifOwnerMatch  # 仅允许跟踪链接文件属主
     ExecCGI               #  支持CGI脚本
     MultiViews
     All        所有选项,除了 MultiViews
     None    不支持上述选项
 
 AllowOverride   no | yes  是否允许子目录重载特性 
 
黑名单(白名单) 
1 
2 
3 
4 
5 
6 
7 
Order allow, deny
 
 [ Allow | Deny ] from
     all
     example.org
     10.1.2.3
     10  172.20 
 
基于用户的访问控制 
用户认证类型 
1 
2 
  基本认证:Basic,明文发送
   摘要认证:digest 
 
虚拟用户: 
仅用于访问某服务或获取某资源的凭证;
账号和密码的存储机制: 
1 
2 
3 
4 
  文本文件:.htpasswd
   SQL数据库
   dbm:数据库引擎,提供API
   ldap: 
 
配置 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
<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 
1 
2 
3 
4 
5 
6 
htpasswd [option] passwdfile username
     选项:
     -c:创建一个passwdfile,如果passwdfile已经存在,那么它会重新写入并删除原有内容
     -m:以md5的格式编码存储用户的密码信息
     -s:sha1加密用户密码;
     -D:删除指定用户