1、显示服务器版本信息 ServerTokens Major|Minor|Min[imal]|Prod[uctOnly]|OS|Full 建议使用:ServerTokens Prod(curl -I IP_HOST) 2、监听的IP和Port 和 servername Listen [IP:]PORT (1) 省略IP表示为本机所有IP (2) Listen指令至少一个,可重复出现多次 Listen 80 Listen 8080 Listen 192.168.1.100:8080 servername www.abc.com.cn 域名 3、持久连接:Persistent Connection:连接建立,每个资源获取完成后不会断开连接,而是继续等待其它的请求完成,默认关闭持久连接 断开条件:时间限制:以秒为单位, 默认5s,httpd-2.4 支持毫秒级 副作用:对并发访问量大的服务器,持久连接会使有些请求得不到响应 折衷:使用较短的持久连接时间 设置:KeepAlive On|Off KeepAliveTimeout 15 MaxKeepAliveRequests 100 #与keepalive on有关,长连接最多接受多少个请求。请求数量大于改值则自动断开。 测试:telnet WEB_SERVER_IP PORT GET /test.index HTTP/1.1 Host: WEB_SERVER_IP 4、DSO: Dynamic Shared Object 加载动态模块配置,不需重启即生效 yum 安装方式: /etc/httpd/conf/httpd.conf Include conf.modules.d/*.conf模块配置文件路径 动态模块路径: /usr/lib64/httpd/modules/ make安装方式: 配置指定实现模块加载格式: LoadModule <mod_name> <mod_path> 模块文件路径可使用相对路径:相对于ServerRoot(默认/etc/httpd) 示例:LoadModule auth_basic_module modules/mod_auth_basic.so 查看静态编译的模块:httpd -l 查看静态编译及动态装载的模块:httpd –M 注意:1.静态模块只有在编译安装时才能添删。动态模块是可以在配置文件中添删,添加#号就是删除(禁用)的意思。 5、MPM( Multi-Processing Module)多路处理模块 prefork, worker, event 切换使用的MPM /etc/httpd/conf.modules.d/00-mpm.conf 启用要启用的MPM相关的LoadModule指令即可 prefork的配置: StartServers 8 #指定服务器在启动时建立的子进程数量 MinSpareServers 5 #指定空闲子进程的最小数量,默认为5,假如当前空闲子进程数少于MinSpareServers,那么apache将以最大每秒一个速度产生新的子进程。此参数不宜过大 MaxSpareServers 20 #指定空闲子进程的最大数量,默认为20,假如当前有超过 MaxSpareServers数量的空闲子进程,那么父进程将杀死多余的子进程。此参数不宜过大 ServerLimit 256 #最多进程数,最大值 20000-200000 MaxClients 256 #最大的进程并发连接数. ServerLimit:这个参数是控制apache的进程总数的,那为什么会有两个参数控制apache的进程总数呢?这个参数在apache1的时代是没有的,因为那个时候有个256M内存的服务器就很厉害了。 后来apache2的时代到来,服务器的硬件也得到升级。很多服务器都是4G内存,还有很多比4G内存大的服务器出现。apache1的时代只有一个MaxClients参数控制进程总数就够了,而这个参数最大值是256,定死了。 但是到了apache2的时代必须调整ServerLimit值大于256才能使MaxClient支持大于256的值。 MaxClients:apache最大的进程数。apache1的时代只有一个MaxClients参数控制进程总数就够了,而这个参数最大值是256定死了。但是到了apache2的时代必须调整ServerLimit值大于256才能使MaxClient支持大于256的值。 MaxRequestsPerChild 4000 单个子进程最多能处理的请求数量。 在处理MaxRequestsPerChild 个请求之后,子进程将会被父进程终止,这时候子进程占用的内存就会释放(为0时永远不释放), 1.能防止内存泄漏无限进行,从而耗尽内存。 2.给进程一个有限寿命,从而有助于当服务器负载减轻的时候减少活动进程的数量。 worker的配置: StartServers 4 #服务器进程启动时候启动多少空闲进程 MaxRequestWorkers 150 #时处理的最大连接数的限制。任何超过限制的连接尝试通常都会排队。 MaxClients 300 #最大并发响应数300 MinSpareThreads 25 #最小空闲线程数25 MaxSpareThreads 75 #最大空闲线程数75 ThreadsPerChild 25 #每个进程启动25 个线程 MaxRequestsPerChild 0 #每个子进程在生命周期内所能够服务的最多请求个数,注意,“0”表示的是不限定请求个数; 6、定义'Main' server的文档页面路径 文档路径映射:DocumentRoot “/path” DocumentRoot指向的路径为URL路径的起始位置 DocumentRoot "/var/www“ <Directory "/var/www"> Require all granted #7的新特性。对路径授权,否则更改了路径DocumentRoot都没有用。 </Directory> 7、定义站点主页面 <IfModule dir_module> DirectoryIndex index.html </IfModule> 7、错误页面路径 <virtualhost *:81> documentroot /data/asite <Directory "/data/asite"> Require all granted </Directory> <LocationMatch "^/+$"> # "^/+$" 行首行尾间一个以上/ Options -Indexes ErrorDocument 403 /.noindex.html </LocationMatch> Alias /.noindex.html /data/error/index.html <Directory /data/error> AllowOverride None Require all granted </Directory> echo error page > /data/error/index.html ErrorDocument 404 /404.html: echo 404.page > /data/asite/404.html #虚拟机主机的 #ErrorDocument 402 http://www.baidu.com </virtualhost>
10、日志设定 日志类型:访问日志 错误日志 错误日志:ErrorLog logs/error_log LogLevel 可选值: debug, info, notice, (默认)warn,error, crit, alert, emerg 访问日志: 定义日志格式:LogFormat format strings LogFormat "%h %l %u %{%F %T}t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" log_NAME 使用日志格式: CustomLog logs/access_log log_NAME %h 客户端IP地址 %l 远程用户,启用mod_ident才有效,通常为减号“-” %u 验证(basic,digest)远程用户,非登录访问时,为一个减号“-” %t 服务器收到请求时的时间 %r First line of request,即表示请求报文的首行;记录了此次请求的“方法”,“URL”以及协议版本 %>s 响应状态码 %b 响应报文的大小,单位是字节;不包括响应报文http首部(数据大小) %{Referer}i 请求报文中首部“referer”的值;即从哪个页面中的超链接跳转至当前页面的(防盗链技术,百度之类的地址可能是跳转或推广) %{User-Agent}i 请求报文中首部“User-Agent”的值;即发出请求的应用程序 11、设定默认字符集 AddDefaultCharset UTF-8 此为默认值 中文字符集:GBK, GB2312, GB18030 12、定义路径别名 网站路径有三种: 1.DocumentRoot 2.软链接 3.Alias 格式:Alias /URL/ "/PATH/" alias /bbs/ /app/path/ <directory /app/path/> Require all granted </directory> DocumentRoot "/www/htdocs" http://www.magedu.com/download/bash.rpm ==>/www/htdocs/download/bash.rpm Alias /download/ "/rpms/pub/" http://www.magedu.com/download/bash.rpm ==>/rpms/pub/bash.rpm 15、ServerSignature On | Off | EMail 当客户请求的网页并不存在时,服务器将产生错误文档,如果打开了ServerSignature选项,错误文档的最后一行将包含服务器的名字、Apache的 版本等信息,如果不对外显示这些信息,就可以将这个参数设置为Off设置为Email,将显示ServerAdmin 的Email提示
18、mod_deflate模块压缩页面优化传输速度 适用场景: (1) 节约带宽,额外消耗CPU;同时,可能有些较老浏览器不支持 (2) 压缩适于压缩的资源,例如文本文件 LoadModule deflate_module modules/mod_deflate.so 压缩模块httpd -M SetOutputFilter DEFLATE 启用压缩(默认启用) AddOutputFilterByType DEFLATE text/html 压缩 压缩页面类型:text/html、application/xhtml+xml、text/xml、application/xml、application/x-javascript、text/javascript、、text/css 压缩等级:Level of compression (Highest 9 - Lowest 1) DeflateCompressionLevel 9 排除特定旧版本的浏览器,不支持压缩 #Netscape 4.x 只压缩text/html BrowserMatch ^Mozilla/4 gzip-only-text/html #Netscape 4.06-08三个版本 不压缩 BrowserMatch ^Mozilla/4\.0[678] no-gzip #Internet Explorer标识本身为“Mozilla / 4”,但实际上是能够处理请求的压缩。如果用户代理首部匹配字符串“MSIE”(“B”为单词边界”),就关闭之前定义的限制 BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
标签:httpd,请求,配置,html,参数,模块,进程,服务器 From: https://www.cnblogs.com/Yuanbangchen/p/16599594.html