标签:httpd的配置
CentOS 6:httpd-2.2
程序环境:
配置文件:
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/*.conf
服务脚本:
/etc/rc.d/init.d/httpd
脚本配置文件:/etc/sysconfig/httpd
主程序文件:
/usr/sbin/httpd
/usr/sbin/httpd.event
/usr/sbin/httpd.worker
日志文件:
/var/log/httpd:
access_log:访问日志
error_log:错误日志
站点文档:
/var/www/html(页面文件)
模块文件路径:
/usr/lib64/httpd/modules
服务控制和启动:
chkconfig httpd on|off
service {start|stop|restart|status|configtest|reload} httpd
常用配置:
1、修改监听的IP和PORT
# vim /etc/httpd/conf/httpd.conf
(1) 省略IP表示为0.0.0.0;
(2) Listen指令可重复出现多次;
Listen 80
Listen 8080
(3) 修改监听socket,重启服务进程方可生效;
注意:改配置文件需要重启服务 service httpd restart
netstat -tnlp(查看当前启动的服务所用的端口)
2、持久连续
tcp连续建立后,每个资源获取完成后不全断开连接,而是继续等待其它资源请求的进行;
副作用:对并发访问量较大的服务器,长连接机制会使得后续某些请求无法得到正常 响应;
折衷:使用较短的持久连接时长,以及较少的请求数量;
KeepAlive On|Off(是否开启持久连续)
KeepAliveTimeout 15(时间限制)
MaxKeepAliveRequests 100(数量限制)
# vim /etc/httpd/conf/httpd.conf
重启服务 service httpd restart
3、MPM
httpd-2.2不支持同时编译多个MPM模块,所以只能编译选定要使用的那个;
CentOS 6的rpm包为此专门提供了三个应用程序文件:
httpd(prefork), httpd.worker, httpd.event
查看现在使用的是哪个程序文件的方法启动了多少进程:
# ps aux | grep httpd
第一行为主控进程(管理进程的创建和销毁)
默认使用的为/usr/sbin/httpd,其为prefork的MPM模块 ;
查看httpd程序的模块列表:
查看静态编译的模块:
# httpd -l
查看静态编译及动态编译的模块:
# httpd -M
更换使用httpd程序,以支持其它MPM机制;
# vim /etc/sysconfig/httpd
HTTPD=/usr/sbin/httpd.{worker,event}
注意:重启服务进程方可生效
# service httpd restart
MPM配置:
# vim /etc/httpd/conf/httpd.conf
prefork的配置
<IfModule prefork.c>(如果prefork存在)
StartServers 8(启动多少空闲进程)
MinSpareServers 5(最少空闲进程数)
MaxSpareServers 20(最大空闲进程)
ServerLimit 256(允许MaxClients最大启动的进程数量)
MaxClients 256(最大允许启动的进程数量)
MaxRequestsPerChild 4000(每个进程最多可处理多少请求,处理了4000个就要销毁此进程)
</IfModule>
worker的配置:
<IfModule worker.c>
StartServers 4(启动多少空闲进程)
MaxClients 300(最大允许启动的进程数量)
MinSpareThreads 25(最少空闲进程数)
MaxSpareThreads 75(最多空闲进程数)
ThreadsPerChild 25(每个主进程最大可生成多少线程)
MaxRequestsPerChild 0(每个进程可处理无上限的请求)
</IfModule>
PV,UV
PV:Page View(页面浏览量)
UV: User View(用户浏览量)
4、DSO(动态共享模块)
配置指定实现模块加载
LoadModule <mod_name> <mod_path>(模块文件路径)
模块文件路径可使用相对路径:
相对于ServerRoot(默认/etc/httpd)
5、 定义访问主文档页面路径
# vim /etc/httpd/conf/httpd.conf
DocumentRoot " "
文档路径映射:
DoucmentRoot指向的路径为URL路径的起始位置
其相当于站点URL的根路径;
注意:重启服务进程方可生效
# service httpd restart
6、站点访问控制常见机制
可基于两种机制指明对哪些资源进行何种访问控制
文件系统路径:
<Directory "">
...
</Directory>
<File "">
...
</File>
<FileMatch "PATTERN">
...
</FileMatch>
URL路径:
<Location "">
...
</Location>
<LocationMatch "">
...
</LocationMatch>
<Directory>中“基于源地址”实现访问控制:
(1) Options
后跟1个或多个以空白字符分隔的“选项”列表;
Indexes:指明的URL路径下不存在与定义的主页面资源相符的资源文件时,返回索引列表给用户;(建议关掉)
FollowSymLinks:允许跟踪符号链接文件所指向的源文件(建议关掉);
None:一个也没有
All:全部
建议改为:Options None
(2) AllowOverride(允许覆盖)
与访问控制相关的哪些指令可以放在.htaccess文件(每个目录下都可以有一个)中;
All: 全部
None:一个也没有
建议改为:AllowOverride None
(3) order和allow、deny拒绝
order:定义生效次序;写在后面的表示默认法则;
Allow from来源地址, Deny from来源地址
来源地址:
IP
NetAddr:(网络地址)
172.16
172.16.0.0
172.16.0.0/16
172.16.0.0/255.255.0.0
1、e.g.设置为仅允许172.16网段的主机访问:Allow from 172.16
2、e.g.Deny from 172.16.100.88
Allow from 172.16
(仅允许172.16网段的主机访问,但 172.16.100.88这台不能访问)
7、定义站点主页面:
DirectoryIndex index.html index.html.var(先找index.html没有找到,就找index.html.var)
8、定义路径别名
格式:
Alias /URL/ "/PATH/TO/SOMEDIR/"
DocumentRoot "/www/htdocs"
http://www.magedu.com/download/bash-4.4.2-3.el6.x86_64.rpm
/www/htdocs/download/bash-4.4.2-3.el6.x86_64.rpm
Alias /download/ "/rpms/pub/"
http://www.magedu.com/download/bash-4.4.2-3.el6.x86_64.rpm
/rpms/pub/bash-4.4.2-3.el6.x86_64.rpm
http://www.magedu.com/images/logo.png
/www/htdocs/images/logo.png
9、设定默认字符集(为防止语言不通,响应的页面看不懂。)
AddDefaultCharset UTF-8
中文字符集:GBK, GB2312, GB18030
标签:httpd的配置
原文地址:http://11293309.blog.51cto.com/11283309/1769878