httpd配置参数说明

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		

  

posted @ 2022-08-18 17:48  yuanbangchen  阅读(88)  评论(0编辑  收藏  举报