首页 > 代码库 > apache配置文件详解(二)

apache配置文件详解(二)

一、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 <IfModule prefork.c>               #perfork工作模式配置
103 StartServers       8                     #初始开启进程数
104 MinSpareServers    5                              #最少空闲进程数
105 MaxSpareServers   20                              #最大空闲进程数
106 ServerLimit      256                              #系统最大进程数
107 MaxClients       256                              #最大客户端连接数(如要改变需先停止服务)
108 MaxRequestsPerChild  4000               #每个进程最多相应请求次数。如果达到,直接杀掉
109 </IfModule>


118 <IfModule worker.c>                              #worker工作模式配置
119 StartServers         4                         #初始开启进程数
120 MaxClients         300                         #最大客户端连接数(如要改变需先停止服务)
121 MinSpareThreads     25                         #最小空闲线程
122 MaxSpareThreads     75                         #最大空闲线程
123 ThreadsPerChild     25                         #一个进程生成的线程
124 MaxRequestsPerChild  0                         #每个线程处理的请求数
125 </IfModule>

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 <Directory "/var/www/html">                #定义DocumentRoot访问属性
331     Options Indexes FollowSymLinks               #indexes表示开启目录遍历,为none表示所有选项都不支持。FollowSymLinks表示允许访问连接指向的源文件。
338     AllowOverride None                                   #允许覆盖下面两项,使用AuthConfig表示使用密码认证
343     Order allow,deny                                    #访问控制列表顺序,先允许,后拒绝
344     Allow from all                                             #允许所有人访问
346 </Directory>

360 <IfModule mod_userdir.c>           #定义是否允许用户在自己家目录下创建网页文件
366     UserDir disabled                       #如改为public_html表示允许用户在自己家目录中创建public_html网页文件
375 </IfModule>

402 DirectoryIndex index.html index.html.var        #定义默认访问页面
409 AccessFileName .htaccess                 #单目录定义访问控制(不建议开启)

415 <Files ~ "^\.ht">                         #定义以.ht开头的文件均不允许访问.ht开头文件大都是密码文件
416     Order allow,deny
417     Deny from all
418     Satisfy All
419 </Files>

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 <Location /server-status>        #定义查看服务器的状态     
922     SetHandler server-status       #apache内置的server-status的Handler
923     Order allow,deny
924     Allow from 192.168.11.4        #在生产环境中不建议对所有用户开放,所以应定义只允许管理员访问
925 </Location>
}


六、访问控制的地址表示方式:

               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是定义组名,后面跟要登陆的用户。
注:使用组名来认证时,必须和密码文件同时使用。


本文出自 “亮公子” 博客,请务必保留此出处http://iyull.blog.51cto.com/4664834/1864367

apache配置文件详解(二)