第十五节、apache虚拟主机配置参数、常用文件及工作模式说明及

2017-12-03  本文已影响0人  妄语莫言
一、虚拟主机配置文件参数

以企业实际生产环境为例,以下是一台虚拟主机配置代码

<VirtualHost *:80>
    ServerAdmin wgkgood@163.com  
    DocumentRoot "/data/webapps/www1" #设置发布目录
    ServerName www.wugk1.com   #设置域名
  <Directory "/data/webapps/www1">  #对发布目录设置权限
    AllowOverride All      #具有 “.htaccess” 作用域将生效.加载这些文件,里面设置一些规则如跳转等
    Options -Indexes FollowSymLinks  #禁止显示目录结构,必须以html方式解析
    Order allow,deny  # 默认情况下禁止所有客户机访问
    Allow from all #允许所有客户机访问
  </Directory>
    ErrorLog  logs/error_log
    CustomLog logs/access_log common
</VirtualHost> 
参数详解

使用<Directory>… </Directory>设置指定目录的访问权限,其中可包含:

  1. AllowOverride 设置为 None 时, .htaccess 文件将被完全忽略。指令设置为 All 时,所有具有 “.htaccess” 作用域将生效.
  2. Options -Indexes FollowSymLinks禁止显示目录,如果要以目录显示需要改成Options Indexes FollowSymLinks,一般作为资源下载站会以目录结构显示.一般网站禁止浏览防止代码被下载.
  3. Order allow,deny ,默认情况下禁止所有客户机访问;Order deny,allow 默认情况下允许所有客户机访问.
  4. Allow from all允许所有客户机访问
二、apache常用文件说明(以yum安装为例,源码安装则在对应的安装目录下)
  1. /etc/httpd/conf/httpd.conf (Apache的主配文件)
    httpd.conf是Apache的主配文件,整个Apache也不过就是这个配置文件,里面几乎包含了所有的配置。有的distribution都将这个文件拆分成数个小文件分别管理不同的参数。但是主要配置文件还是以这个文件为主。只要找到这个文件名就知道如何设置了。后面会详细解释Apache主配文件的每一行配置
  2. /etc/httpd/conf.d/*.conf(include文件,引用文件)
    如果你不想要修改原始配置文件httpd.conf的话,那么可以将你自己的额外参数文件独立出来,注意以.conf结尾放在/etc/httpd/conf.d/目录下。重启Apache的时候,这个配置文件就会被读入主配文件之中了。他的好处就是当你在进行系统升级的时候,几乎不需要改动原本的配置文件,只要将你自己的额外参数文件复制到正确的地点即可,维护起来非常方便。
  3. /usr/lib64/httpd/modules/
    /etc/httpd/modules/
    Apache支持很多的外挂模块,例如PHP以及SSL都是Apache外挂的一种。所有你想要使用的模块文件默认是放置在这个目录当中的。
  4. /var/www/html/ ( (网站根目录,发布目录)
    这个目录就是Apache默认的存放首页的目录(默认是索引页面index.html)
  5. /var/www/error/
    当因为服务器设置错误,或是浏览器要求的数据错误时,在浏览器上出现的错误信息就以这个目录的默认信息为主
  6. /var/www/icons/
    这个目录提供Apache默认给予的一些小图示,可以随意使用。
  7. /var/www/cgi-bin/
    默认给一些可执行的CGI(网页程序)程序放置的目录。
  8. /var/log/httpd/
    默认的Apache日志文件都放在这里,对于流量比较大的网站来说,这个目录要格外注意,这里的数据文件可能会非常大。
  9. /usr/sbin/apachectl
    这个就是Apache的主要执行文件,这个执行文件其实就是一个Shell Script而已,他可以主动地侦测系统上面的一些设置值,好让你启动Apache时更简单一些。
  10. /usr/sbin/httpd
    这个是主要的Apache二进制执行文件。
  11. /usr/bin/htpasswd ( (Apache密码保护)
    在当你想要登入某些网页时你需要输入帐号与密码,那Apache本身就提供一个最基本的密码保护方式,该密码的产生就是通过这个命令来实现的。
三、apache工作模式

一般来说常用的apache服务器有两种工作模式preforkworker两种,源码包预编译的时候参数--with-mpm=MPM就是选择安装引擎的工作模式MPM={beos|event|worker|prefork|mpmt_os2|winnt}

两种工作模式配置文件,/usr/local/apache2/conf/extra/httpd-mpm.conf
[root@mini extra]# vim /usr/local/apache2/conf/extra/httpd-mpm.conf
# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_prefork_module>
    StartServers               8  #初始化启动工作子进程,主进程master只有1个,开启服务时生成
    ServerLimit             1000 #服务器最大并发数量,一般和 MaxClients保持一直,否则会报警,默认是256
    MinSpareServers       25 #预留最小空闲进程
    MaxSpareServers      75 #预留最大空闲进程
    MaxClients              1000 #客户端最大连接数
    MaxRequestsPerChild   100000 #每个子进程最大处理请求数之和,0表示无限制是一直存在,否则达到数量后杀掉重新生成
</IfModule>

# worker MPM
# StartServers: initial number of server processes to start
# MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestsPerChild: maximum number of requests a server process serves
<IfModule mpm_worker_module>
    StartServers                  2  #初始化启动工作子进程
    MaxClients                   4000 #客户端连接数,每秒最大的并发数
    MinSpareThrea ds        25 #预留最小空闲线程
    MaxSpareThreads        75 #预留最大空闲线程
    ThreadsPerChild           500 #每个子进程支持的线程数量
    MaxRequestsPerChild    10000  #每个线程处理连接总数,之后杀掉重新生成
</IfModule>
四、ReWrite规则

即网页重定向功能,实现的是URL的跳转,有两种配置方式,一种是基于服务器级别的即修改主配置文件httpd.conf,一种书目录级的即通过加载(.htaccess)文件.
实现rewrite功能需要在安装预编译的时候就增加参数--enable-rewrite来为服务器增加特定的功能模块.
修改配置文件httpd.conf,增加配置语句

RewriteEngine on  #启用rewrite引擎
RewriteCond %{HTTP_HOST} ^wugk1.com [NC]   //匹配以wugk1.com开头的域名,NC忽略大小写。
RewriteRule ^/(.*)$  http://www.wugk1.com/$1  [L]
//匹配上面条件,然后跳转到http://www.wugk1.com 
1)R 强制外部重定向。
2)F 禁用URL,返回403HTTP状态码。 
3)G 强制URL为GONE,返回410HTTP状态码。 
4)P 强制使用代理转发。 
5)L 表明当前规则是最后一条规则,停止分析以后规则的重写。 
6)N 重新从第一条规则开始运行重写过程。 
7)C 与下一条规则关联。
上一篇 下一篇

猜你喜欢

热点阅读