|
一、apache工作模式的区别
perfork 一个进程处理一个请求 优点:稳定,进程崩溃不会影响其他进程。缺点:性能很差,占用资源太多。
worker 一个线程处理一个请求 优点:效率较perfork较高。缺点:线程之间会抢占资源,导致线程加锁。
event 一个线程处理多个请求
|
二、获取apache帮助,可在本地安装
yum -y install httpd_manual
| 在服务器站点后加上manual即可
三、apache默认使用perfork模型,如需更改,需修改下面配置文件
vi /etc/sysconfig/httpd 中 HTTPD=/usr/sbin/httpd.worker 启用此项,即使用woker模型
rpm -ql httpd |grep bin #查看http支持的模块类型
|
四、查看httpd配置文件包含的模块
[root@localhost conf]# grep "Section" httpd.conf #查看httpd配置文件包含的模块
### Section 1: Global Environment #全局模块
### Section 2: 'Main' server configuration #主server模块
### Section 3: Virtual Hosts #虚拟主机模块
|
注:主server模块和虚拟主机模块不可同时生效,如果启用主server模块表示此服务器中只提供一个web服务,如需启用虚拟主机,只需注释主server的DocumentRoot即可
五、各大模块介绍
1、全局模块
{
102 #perfork工作模式配置
103 StartServers 8 #初始开启进程数
104 MinSpareServers 5 #最少空闲进程数
105 MaxSpareServers 20 #最大空闲进程数
106 ServerLimit 256 #系统最大进程数
107 MaxClients 256 #最大客户端连接数(如要改变需先停止服务)
108 MaxRequestsPerChild 4000 #每个进程最多相应请求次数。如果达到,直接杀掉
109
118 #worker工作模式配置
119 StartServers 4 #初始开启进程数
120 MaxClients 300 #最大客户端连接数(如要改变需先停止服务)
121 MinSpareThreads 25 #最小空闲线程
122 MaxSpareThreads 75 #最大空闲线程
123 ThreadsPerChild 25 #一个进程生成的线程
124 MaxRequestsPerChild 0 #每个线程处理的请求数
125
136 Listen 80 #监听服务器所有地址的80端口
150 LoadModule auth_basic_module modules/mod_auth_basic.so #定义服务所加载的模块
.......
151 LoadModule auth_digest_module modules/mod_auth_digest.so #格式为:模块名称 模块路径
221 Include conf.d/*.conf #主配置文件组成部分
242 User apache #apache规定所有进程都由普通用户管理,默认使用apache用户管理
243 Group apache
}
|
2、主server模块
{
245 ### Section 2: 'Main' server configuration
262 ServerAdmin root@localhost #server服务管理员邮箱
276 ServerName www.morgan.com #定义服务域名,如果不启用,apache启动时会使用本机地址和localhost作为访问。
292 DocumentRoot "/var/www/html" #网页根目录,可自定义
317 #定义DocumentRoot访问属性
331 Options Indexes FollowSymLinks #indexes表示开启目录遍历,为none表示所有选项都不支持。FollowSymLinks表示允许访问连接指向的源文件。
338 AllowOverride None #允许覆盖下面两项,使用AuthConfig表示使用密码认证
343 Order allow,deny #访问控制列表顺序,先允许,后拒绝
344 Allow from all #允许所有人访问
346
360 #定义是否允许用户在自己家目录下创建网页文件
366 UserDir disabled #如改为public_html表示允许用户在自己家目录中创建public_html网页文件
375
402 DirectoryIndex index.html index.html.var #定义默认访问页面
409 AccessFileName .htaccess #单目录定义访问控制(不建议开启)
415 #定义以.ht开头的文件均不允许访问.ht开头文件大都是密码文件
416 Order allow,deny
417 Deny from all
418 Satisfy All
419
425 TypesConfig /etc/mime.types #定义apache支持的多媒体文档,支持的多媒体类型保存在mime.types
436 DefaultType text/plain #如不指定上面的多媒体类型,则默认使用纯文本文档
456 HostnameLookups Off #定义在访问日志中是否记录客户端的主机名(非常浪费资源)
484 ErrorLog logs/error_log #定义错误日志
491 LogLevel warn #定义日志级别
497 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined #定义日志机制
526 CustomLog logs/access_log combined #定义访问日志路径和记录日志机制类型
551 Alias /icons/ "/var/www/icons/" #定义网站路径别名
921 #定义查看服务器的状态
922 SetHandler server-status #apache内置的server-status的Handler
923 Order allow,deny
924 Allow from 192.168.11.4 #在生产环境中不建议对所有用户开放,所以应定义只允许管理员访问
925
}
|
六、访问控制的地址表示方式:
IP
network/netmask
域名
部分IP:如 172.16,
|
七、apache开启认证(将下面的配置放在主server或者虚拟主机模块中,结合server配置使用)
338 AllowOverride AuthConfig #使用认证配置
AuthType Basic #认证类型
AuthName "apache_site" #认证名称
AuthUseFile "/etc/httpd/conf/htpasswd" #定义密码文件
AuthGroupFile "/etc/httpd/conf/htgroup" #定义允许登陆的组
Require valid-user #表示允许文件中所有用户登陆,如使用user ***表示使用文件中某些用户登陆,如使用group表示使用组来访问
| 创建登陆的用户文件
htpasswd -c -m /etc/httpd/conf/htpasswd 用户名,以此输入密码即可
| 如要使用组内用户登陆
直接创建htgroup文件即可
如echo "myusers:tom lilei" > htgroup myusers是定义组名,后面跟要登陆的用户。
注:使用组名来认证时,必须和密码文件同时使用。
|
|
|
|
|
|
|