五. Httpd 常见配置
过滤
grep -v "^ *#" /etc/httpd/conf/httpd.conf
用这个就可以查看到上次grep的结果
备份
cp /etc/httpd/conf/httpd.conf{
,.bak}
httpd配置文件的组成:
Global Environment
Main server configuration
virtual host
配置格式:directive value 指令+值
directive 不区分字符大小写
value 为路径时,是否区分大小写,取决于文件系统
官方帮助
http://httpd.apache.org/docs/2.4/在参考手册—指令快速搜索中
指定服务器名
[root@centos8 ~]#vim /etc/httpd/conf/httpd.conf
#ServerName www.example.com:80
servername www.qcq.org
[root@centos8 ~]#httpd -t
Syntax OK
包含其它配置文件
Include和IncludeOptional功能相同,都可以包括其它配置文件
但是当无匹配文件时
,include会报错,IncludeOptional
会忽略错误
vim /etc/httpd/conf/httpd.conf
#Include file-path|directory-path|wildcard
#IncludeOptional file-path|directory-path|wildcard
Include conf/vhosts/*/*.conf
IncludeOptional conf/vhosts/*/*.conf
1. 显示服务器版本信息
ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full
ServerTokens Prod[uctOnly]Server: Apache
ServerTokens Major: Server: Apache/2
ServerTokens Minor: Server: Apache/2.0
ServerTokens Min[imal]: Server: Apache/2.0.41
ServerTokens OS: Server: Apache/2.0.41 (Unix)
ServerTokens Full (or not specified): Server: Apache/2.0.41 (Unix)
-I只看响应头
为了安全隐藏版本信息:
prod和productonly一样
建议使用:ServerTokens Prod
禁止错误网页版本泄露
ServerSignature On | Off | EMail
默认值Off,如果ServerTokens 使用默认值,并且ServerSignature选项为on,当客户请求的网页并不存
在时,服务器将产生错误文档,错误文档的最后一行将包含服务器名字、Apache版本等信息,如果不
对外显示这些信息,就可将这个参数设置为Off, 如果设置为Email,将显示ServerAdmin 的Email提示
ServerSignature on
禁止trace方法
默认on,基于安全风险,建议关闭
TraceEnable [on|off|extended]
2. 修改监听的IP和Port
Listen [IP:]PORT
(1) 省略IP表示为本机所有IP
(2) Listen指令至少一个,可重复出现多次
Listen 80
Listen 8080
例如:将htpd服务的监听端口绑定为指定ip才能访问
listen IP 端口
listen 192.168.245.128:80
同时也可以绑定多个端口
也就是一个主机可以做多个网站
—但是用虚拟主机技术
3.持久连接keepalive
Persistent Connection:连接建立,每个资源获取完成后不会断开连接,而是继续等待其它的请求完成,默认关闭持久连接
断开条件:时间限制:以秒为单位, 默认5s,httpd-2.4 支持毫秒级
副作用:对并发访问量大的服务器,持久连接会使有些请求得不到响应
httpd1.1默认开启
折衷:使用较短的持久连接时间
设置:
KeepAlive On
KeepAliveTimeout 15 #连接持续15s,可以以ms为单位,默认值为5s
MaxKeepAliveRequests 500 #持久连接最大接收的请求数,默认值100
可以自己调整
测试:用命令模拟浏览器
telnet 192.168.245.129 80
GET /URL HTTP/1.1
Host: WEB_SERVER_IP
4. DSO: Dynamic Shared Object 动态加载模块
加载动态模块配置,不需重启即生效
/etc/httpd/conf/httpd.conf
Include conf.modules.d/*.conf 这些文件都会自动加载
配置指定实现模块加载格式:
也就是在/etc/httpd/conf.moudle.d/00-base.conf文件中会指定加载的模块
LoadModule <mod_name> <mod_path>
模块名 相对路经
模块文件路径可使用相对路径:相对于ServerRoot(默认/etc/httpd)
示例:
LoadModule auth_basic_module modules/mod_auth_basic.so
动态模块路径: /usr/lib64/httpd/modules/
查看静态编译的模块(不能人工卸载—只能在编译时确定)
httpd -l
查看静态编译及动态装载的模块
httpd –M
5. MPM( Multi-Processing Module)多处理模块
prefork, worker, event
切换使用的MPM
/etc/httpd/conf.modules.d/00-mpm.conf
启用要启用的MPM相关的LoadModule指令即可
想要启动那个模块----j昂那个模块的注释 去掉,并注释其他的模块
查看CentOS默认的MPM工作模式
httpd -M |grep mpm
可以用ab命令 压力测试来测试三个mpm的性能(一个模块要测多次)
一秒钟能处理多少个请求
prefork的配置