您的位置:新葡亰496net > 电脑系统 > apache基本安装配置,Apache的主要目录和配置文件

apache基本安装配置,Apache的主要目录和配置文件

发布时间:2019-06-23 01:28编辑:电脑系统浏览(120)

    一、Apache 主要配置文件注释
    Apache的主配置文件:/etc/httpd/conf/httpd.conf
    默认站点主目录:/var/www/html/
    Apache服务器的配置信息全部存储在主配置文件/etc/httpd/conf/httpd.conf中,这个文件中的内容非常多,用wc命令统计一共有1009行,其中大部分是以#开头的注释行。

    Apache的主要目录和配置文件详解,

    一、Apache 主要配置文件注释
    Apache的主配置文件:/etc/httpd/conf/httpd.conf
    默认站点主目录:/var/www/html/
    Apache服务器的配置信息全部存储在主配置文件/etc/httpd/conf/httpd.conf中,这个文件中的内容非常多,用wc命令统计一共有1009行,其中大部分是以#开头的注释行。

    ServerTokens OS
    在出现错误页的时候是否显示服务器操作系统的名称,ServerTokens Prod为不显示

    ServerRoot "/etc/httpd"
    用于指定Apache的运行目录,服务启动之后自动将目录改变为当前目录,在后面使用到的所有相对路径都是想对这个目录下

    User daemon                          # apache的用户,默认为daemon
    Group daemon                         # apache的用户,默认为daemon

    PidFile run/httpd.pid
    记录httpd守护进程的pid号码,这是系统识别一个进程的方法,系统中httpd进程可以有多个,但这个PID对应的进程是其他的父进程

    Timeout 60
    服务器与客户端断开的时间

    KeepAlive Off
    是否持续连接(因为每次连接都得三次握手,如果是访问量不大,建议打开此项,如果网站访问量比较大关闭此项比较好),修改为:KeepAlive On 表示允许程序性联机

    MaxKeepAliveRequests 100
    表示一个连接的最大请求数

    KeepAliveTimeout 15
    断开连接前的时间

    <IfModule prefork.c>
    StartServers       8
    MinSpareServers    5
    MaxSpareServers   20
    ServerLimit      256
    MaxClients       256
    MaxRequestsPerChild  4000
    </IfModule>
    系统默认的模块,表示为每个访问启动一个进程(即当有多个连接公用一个进程的时候,在同一时刻只能有一个获得服务)。
    StartServer开始服务时启动8个进程,最小空闲5个进程,最多空闲20个进程。
    MaxClient限制同一时刻客户端的最大连接请求数量超过的要进入等候队列。
    MaxRequestsPerChild每个进程生存期内允许服务的最大请求数量,0表示永不结束

    <IfModule worker.c>
    StartServers         4
    MaxClients         300
    MinSpareThreads     25
    MaxSpareThreads     75
    ThreadsPerChild     25
    MaxRequestsPerChild  0
    </IfModule>
    为Apache配置线程访问,即每对WEB服务访问启动一个线程,这样对内存占用率比较小。
    ServerLimit服务器允许配置进程数的上限。
    ThreadLimit每个子进程可能配置的线程上限
    StartServers启动两个httpd进程,
    MaxClients同时最多能发起250个访问,超过的要进入队列等待,其大小有ServerLimit和ThreadsPerChild的乘积决定
    ThreadsPerChild每个子进程生存期间常驻执行线程数,子线程建立之后将不再增加
    MaxRequestsPerChild每个进程启动的最大线程数,如达到限制数时进程将结束,如置为0则子线程永不结束

    Listen 80
    监听的端口,如有多块网卡,默认监听所有网卡

    LoadModule auth_basic_module modules/mod_auth_basic.so
    ......
    LoadModule version_module modules/mod_version.so
    启动时加载的模块

    Include conf.d/*.conf
    加载的配置文件

    启动服务后转换的身份,在启动服务时通常以root身份,然后转换身份,这样增加系统安全

    ServerAdmin [email protected]    #管理员的邮箱,如果出现问题,会在首页显示

    #ServerName www.example.com:80
    默认是不需要指定的,服务器通过名字解析过程来获得自己的名字,但如果解析有问题(如反向解析不正确),或者没有DNS名字,也可以在这里指定IP地址,当这项不正确的时候服务器不能正常启动。前面启动Apache时候提示正在启动  httpd:httpd: apr_sockaddr_info_get() failed forjustin httpd: Could not  reliably determine the server's fully qualified domain name, using  127.0.0.1forServerName,解决方法就是启动该项把www.example.com:80修改为自己的域名或者直接修改为localhost

    UseCanonicalName Off
    如果客户端提供了主机名和端口,Apache将会使用客户端提供的这些信息来构建自引用URL。这些值与用于实现基于域名的虚拟主机的值相同,并且对于同样的客户端可用。CGI变量SERVER_NAME和SERVER_PORT也会由客户端提供的值来构建

    DocumentRoot "/var/www/html"    # apache的默认web站点目录路径,结尾不要添加斜线

    <Directory />     #行为对根目录的限制
        Options FollowSymLinks   # followsymlinks表示允许使用符号链接,默认为禁用
        AllowOverride None     # 表示禁止用户对目录配置文件(.htaccess进行修改)重载,普通站点不建议开启
    </Directory>

    <Directory "/var/www/html">
        Options Indexes FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
    对/var/www/html目录的一个权限的设置,options中Indexes表示当网页不存在的时候允许索引显示目录中的文件,FollowSymLinks是否允许访问符号链接文件。有的选项有ExecCGI表是否使用CGI,如Options  Includes ExecCGI  FollowSymLinks表示允许服务器执行CGI及SSI,禁止列出目录。SymLinksOwnerMatch表示当符号链接的文件和目标文件为同一用户拥有时才允许访问。AllowOverrideNone表示不允许这个目录下的访问控制文件来改变这里的配置,这也意味着不用查看这个目录下的访问控制文件,修改为:AllowOverride  All  表示允许.htaccess。Order对页面的访问控制顺序后面的一项是默认选项,如allow,deny则默认是deny,Allowfromall表示允许所有的用户,通过和上一项结合可以控制对网站的访问控制

    <IfModule mod_userdir.c>
        UserDir disabled
    </IfModule>
    是否允许用户访问其家目录,默认是不允许

    #<Directory /home/*/public_html>
    #    AllowOverride FileInfo AuthConfig Limit
    #    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    #    <Limit GET POST OPTIONS>
    #        Order allow,deny
    #        Allow from all
    #    </Limit>
    #    <LimitExcept GET POST OPTIONS>
    #        Order deny,allow
    #        Deny from all
    #    </LimitExcept>
    #</Directory>
    如果允许访问用户的家目录中的网页文件,则取消以上注释,并对其中进行修改

    DirectoryIndex index.html index.html.var    #指定所要访问的主页的默认主页名字,默认首页文件名为index.html

    AccessFileName .htaccess     #定义每个目录下的访问控制文件名,缺省为.htaccess

    <Files ~ "^.ht">
        Order allow,deny
        Deny from all
        Satisfy All
    </Files>
    控制不让web上的用户来查看.htpasswd和.htaccess这两个文件

    TypesConfig /etc/mime.types     #用于设置保存有不同MIME类型数据的文件名

    DefaultType text/plain   #默认的网页的类型

    <IfModule mod_mime_magic.c>
    #   MIMEMagicFile /usr/share/magic.mime
         MIMEMagicFile conf/magic
    </IfModule>
    指定判断文件真实MIME类型功能的模块

    HostnameLookups Off   #当打开此项功能时,在记录日志的时候同时记录主机名,这需要服务器来反向解析域名,增加了服务器的负载,通常不建议开启

    #EnableMMAP off
    是否允许内存映射:如果httpd在传送过程中需要读取一个文件的内容,它是否可以使用内存映射。如果为on表示如果操作系统支持的话,将使用内存映射。在一些多核处理器的系统上,这可能会降低性能,如果在挂载了NFS的DocumentRoot上如果开启此项功能,可能造成因为分段而造成httpd崩溃

    #EnableSendfile off
    这个指令控制httpd是否可以使用操作系统内核的sendfile支持来将文件发送到客户端。默认情况下,当处理一个请求并不需要访问文件内部的数据时(比如发送一个静态的文件内容),如果操作系统支持,Apache将使用sendfile将文件内容直接发送到客户端而并不读取文件

    ErrorLog logs/error_log   #错误日志存放的位置
    LogLevel warn    #Apache日志的级别

    LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
    LogFormat "%h %l %u %t "%r" %>s %b" common
    LogFormat "%{Referer}i -> %U" referer
    LogFormat "%{User-agent}i" agent
    定义了日志的格式,并用不同的代号表示

    #CustomLog logs/access_log common
    CustomLog logs/access_log combined
    说明日志记录的位置,这里面使用了相对路径,所以ServerRoot需要指出,日志位置就存放在/etc/httpd/logs

    ServerSignature On    #定义当客户请求的网页不存在,或者错误的时候是否提示apache的版本的一些信息

    Alias /icons/ "/var/www/icons/"   #定义一些不在DocumentRoot下的文件,而可以将其映射到网页根目录中,这也是访问其他目录的一种方法,但在声明的时候切记目录后面加”/”

    <Directory "/var/www/icons">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
    定义对/var/www/icons/的权限,修改为 Options MultiViews FollowSymLinks表示不在浏览器上显示树状目录结构

    <IfModule mod_dav_fs.c>
         # Location of the WebDAV lock database.
         DAVLockDB /var/lib/dav/lockdb
    </IfModule>
    对mod_dav_fs.c模块儿的管理

    ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"   #对CGI模块儿的的别名,与Alias相似

    <Directory "/var/www/cgi-bin">
        AllowOverride None
        Options None
        Order allow,deny
        Allow from all
    </Directory>
    对/var/www/cgi-bin文件夹的管理,方法同上

    # Redirect old-URI new-URL
    Redirect参数是用来重写URL的,当浏览器访问服务器上的一个已经不存在的资源的时候,服务器返回给浏览器新的URL,告诉浏览器从该URL中获取资源。这主要用于原来存在于服务器上的文档改变位置之后,又需要能够使用老URL能访问到原网页

    IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable Charset=UTF-8
    AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
    ...
    IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
    当一个HTTP请求的URL为一个目录的时候,服务器返回这个目录中的索引文件,如果目录中不存在索引文件,并且服务器有许可显示目录文件列表的时候,就会显示这个目录中的文件列表,为了使得这个文件列表能具有可理解性,而不仅仅是一个简单的列表,就需要前这些参数。如果使用了IndexOptionsFancyIndexing选项,可以让服务器针对不同的文件引用不同的图标。如果没有就使用DefaultIcon定义缺省图标。同样,使用AddDescription可以为不同类型的文档介入描述

    AddLanguage ca .ca
    ......
    AddLanguage zh-TW .zh-tw
    添加语言

    LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
    Apache支持的语言

    AddDefaultCharset UTF-8  #默认支持的语言

    #AddType application/x-tar .tgz   #支持的应用如果想支持对php的解析添加这样一行

    #AddEncoding x-compress .Z
    #AddEncoding x-gzip .gz .tgz
    支持对以.Z和.gz.tgz结尾的文件

    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    添加对上述两种文件的应用

    #AddHandler cgi-script .cgi   #修改为:AddHandler cgi-script .cgi .pl 表示允许扩展名为.pl的CGI脚本运行
    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
    添加动态处理类型为server-parsed由服务器预先分析网页内的标记,将标记改为正确的HTML标识

    #ErrorDocument 404 /missing.html   #当服务器出现404错误的时候,返回missing.html页面
    Alias /error/ "/var/www/error/"   #赋值别名

    <IfModule mod_negotiation.c>
    <IfModule mod_include.c>
        <Directory "/var/www/error">
            AllowOverride None
            Options IncludesNoExec
            AddOutputFilter Includes html
            AddHandler type-map var
            Order allow,deny
            Allow from all
            LanguagePriority en es de fr
            ForceLanguagePriority Prefer Fallback
        </Directory>
    对/var/www/error网页的权限及操作

    BrowserMatch "Mozilla/2" nokeepalive
    BrowserMatch "MSIE 4.0b2;" nokeepalive downgrade-1.0 force-response-1.0
    BrowserMatch "RealPlayer 4.0" force-response-1.0
    BrowserMatch "Java/1.0" force-response-1.0
    BrowserMatch "JDK/1.0" force-response-1.0
    .....
    设置特殊的参数,以保证对老版本浏览器的兼容,并支持新浏览器的特性

    #NameVirtualHost *:80   #如果启用虚拟主机的话,必须将前面的注释去掉,而且,第二部分的内容都可以出现在每个虚拟主机部分。
    # VirtualHost example:
    #<VirtualHost *:80>
    #    ServerAdmin [email protected]
    #    DocumentRoot /www/docs/www.linuxidc.com
    #    ServerName www.linuxidc.com
    #    ErrorLog logs/www.linuxidc.com-error_log
    #    CustomLog logs/www.linuxidc.com-access_log common
    #</VirtualHost>
    www.linuxidc.com替换为你的网址

    二、Apache扩展的配置文件
    $APACHE_HOME/conf/extra          # apache扩展的配置文件
    [[email protected]]# ll
    total 56
    -rw-r--r-- 1 root root  2859 Jan 10 01:49 httpd-autoindex.conf
    -rw-r--r-- 1 root root  1753 Jan 10 01:49 httpd-dav.conf
    -rw-r--r-- 1 root root  2344 Jan 10 01:49 httpd-default.conf
    -rw-r--r-- 1 root root  1103 Jan 10 01:49 httpd-info.conf
    -rw-r--r-- 1 root root  5078 Jan 10 01:49 httpd-languages.conf
    -rw-r--r-- 1 root root   932 Jan 10 01:49 httpd-manual.conf
    -rw-r--r-- 1 root root  3789 Jan 10 01:49 httpd-mpm.conf
    -rw-r--r-- 1 root root  2207 Jan 10 01:49 httpd-multilang-errordoc.conf
    -rw-r--r-- 1 root root 11185 Jan 10 01:49 httpd-ssl.conf
    -rw-r--r-- 1 root root   817 Jan 10 01:49 httpd-userdir.conf
    -rw-r--r-- 1 root root  1507 Jan 10 01:49 httpd-vhosts.conf # 虚拟主机配置文件

    三、httpd-vhosts.conf虚拟主机配置文件注释
    [[email protected]]# egrep -v "^.*#|^$" httpd-vhosts.conf |nl
         1  NameVirtualHost *:80                                # 基于名称的虚拟主机配置( *:80表示监听本机所有ip)
         2  <VirtualHost *:80>                                  # 定义一个虚拟主机
         3      ServerAdmin [email protected]    # 配置管理员邮箱
         4      DocumentRoot "/application/apache2.2.22/docs/dummy-host.example.com"  # 程序的站点目录
         5      ServerName dummy-host.example.com               # 域名服务,需要apache mode_alias模块支持
         6      ServerAlias www.dummy-host.example.com          # 虚拟主机别名
         7      ErrorLog "logs/dummy-host.example.com-error_log"# 错误的日志路径
         8      CustomLog "logs/dummy-host.example.com-access_log" common  #访问日志配置(生产环境我们用combined格式代替common格式)
         9  </VirtualHost>
        10  <VirtualHost *:80>
        11      ServerAdmin [email protected]
        12      DocumentRoot "/application/apache2.2.22/docs/dummy-host2.example.com"
        13      ServerName dummy-host2.example.com
        14      ErrorLog "logs/dummy-host2.example.com-error_log"
        15      CustomLog "logs/dummy-host2.example.com-access_log" common
        16  </VirtualHost>

    四、Apache服务存放站点的目录
    $APACHE_HOME/apache/htdocs              # 默认存放网页的路径,输入IP 到此目录 能够见到it's wroks! 就是此目录
    [[email protected]]# less  index.html
    <html><body><h1>It works!</h1></body></html>

    五、Apache服务目录结构说明
    [[email protected]]# ls ../
     bin  build  cgi-bin  conf  error  htdocs  icons  include  lib  logs  man  manual  modules
    bin启动文件目录说明
    |-- bin                    # apache服务的命令目录
    |   |-- ab                 # http服务性能测试工具
    |   |-- apachectl          # apache启动命令
    |   |-- apr-1-config      
    |   |-- apu-1-config
    |   |-- apxs               # http服务编译和安装扩展模块使用工具,在DSO方式模块编译时用到
    |   |-- checkgid
    |   |-- dbmmanage
    |   |-- envvars
    |   |-- envvars-std
    |   |-- htcacheclean       # 清理磁盘缓冲区的控制命令
    |   |-- htdbm
    |   |-- htdigest
    |   |-- htpasswd           # 建立和更新基本认证文件
    |   |-- httpd              # httpd为apache的控制命令程序
    |   |-- httxt2dbm
    |   |-- logresolve
    |    -- rotatelogs         # apache自带的日子轮询命令(cronolog生产环境使用比较多)。

    conf配置文件目录
    [[email protected]]# ls ../conf/
    extra  httpd.conf  magic  mime.types  original
    /application/apache/conf/         # apache配置所有的配置文件目录
    |-- extra                         # 额外的apache配置文件目录 如:httpd-vhost.conf
    |   |-- httpd-autoindex.conf      
    |   |-- httpd-dav.conf
    |   |-- httpd-default.conf
    |   |-- httpd-info.conf
    |   |-- httpd-languages.conf
    |   |-- httpd-manual.conf
    |   |-- httpd-mpm.conf
    |   |-- httpd-multilang-errordoc.conf
    |   |-- httpd-ssl.conf
    |   |-- httpd-userdir.conf
    |   |-- httpd-vhosts.conf
    |-- httpd.conf                     # apache主配置文件
    |-- magic
    |-- mime.types
    |-- original
    |   |-- extra
    |   |   |-- httpd-autoindex.conf
    |   |   |-- httpd-dav.conf                 # dav支持配置
    |   |   |-- httpd-default.conf             # 这个文件里配置的是apache的相关服务参数:超时时间、保持链接
    |   |   |-- httpd-info.conf
    |   |   |-- httpd-languages.conf           # 语言支持
    |   |   |-- httpd-manual.conf
    |   |   |-- httpd-mpm.conf # 服务器池管理,也是优化apache的一个配置文件(apache的模式以及配置链接数,常用模式为worker模式和profork模式,默认porfork)
    |   |   |-- httpd-multilang-errordoc.conf
    |   |   |-- httpd-ssl.conf                 # 提供apache ssl支持配置文件
    |   |   |-- httpd-userdir.conf
    |   |   |-- httpd-vhosts.conf              # 虚拟机的配置文件
    |   |-- httpd.conf

    站点存放目录
    [[email protected]]# ls -l htdocs/    # 默认的首页文件都放在此目录当中。
    total 4
    -rw-r--r-- 1 root root 44 Nov 21  2004 index.html

    日志存放目录
    [[email protected] apache]# tree logs
    logs                 # apache服务默认的日志路径,包括错误日志和访问日志
    |-- access_log       # apache服务访问日志 tail -f命令可以查看网页用户访问的信息
    |-- cgisock.16406    
    |-- error_log        # apache服务的错误日志。如:apache服务启动故障
    |-- httpd.pid        # httpd的pid文件,http进程启动后,会把所有进程的id号写到此文件

    模块目录
    [[email protected]]# ls -l manual/     # apache的模块目录 如php mencache
    total 2984
    -rw-r--r-- 1 root root   543 May  6  2008 bind.html
    -rw-r--r-- 1 root root 11422 Jan  3  2012 bind.html.de

    一、Apache 主要配置文件注释 Apache的主配置文件:/etc/httpd/conf/httpd.conf 默认站点主目录:/var/www/html/ Apa...

    1、安装apache

    1、安装

    wget

     

    2、安装zlib

    yum install zlib zlib-devel-y

     

    3、解压、编译

     tar xf httpd-2.2.31.tar.gz

     cd httpd-2.2.31

    ./configure --prefix=/application/apache2.2.27

    --enable-deflate

    --enable-expires

    --enable-headers

    --enable-modules=most

    --enable-so

    --with-mpm=worker

    --enable-rewrite

    make &&make insatll

    ln -s /application/apache2.2.27/ /application/apache

     

    Ø  编译详解

    Ø  --prefix=/application/apache2.2.27

    Ø  安装目录

    Ø  --enable-deflate

    Ø  压缩

    Ø  --enable-expires

    Ø  缓存

    Ø  --enable-headers

    Ø  激活headers

    Ø  --enable-modules=most

    Ø  激活大多模块

    Ø  --enable-so

    Ø  --with-mpm=worker

    Ø  work模式一个主进程 多个线程提供服务

    Ø  --enable-rewrite

    Ø  支持伪静态功能

     

     

    一、定义
        所谓虚拟主机是指在一台服务器里运行几个网站,提供WEB、FTP、Mail等服务。
        二。虚拟主机的实现方法有三种:
        基于IP的方法,基于主机名的方法和基于端口的法官法。
        ①基于IP的方法:
        在服务器里绑定多个IP,然后配置WEB服务器,把多个网站绑定在不同的IP上。访问不同的IP,就看到不同的网站。
        ②基于端口的方法:
        一个IP地址,通过不同的端口实在不同网站的访问。
        ③基于主机名的方法:
        设置多个域名的A记录,使它们解析到同一个IP地址上,即同一个服务器上。然后,在服务器上配置WEB服务端,添加多个网站,为每个网站设定一个主机名。 因为HTTP协议访问请求里包含有主机名信息,当WEB服务器收到访问请求时,就可以根据不同的主机名来访问不同的网站。

    ServerTokens OS
    在出现错误页的时候是否显示服务器操作系统的名称,ServerTokens Prod为不显示

    2、apache目录结构

    这里是编译安装后的目录结构

    [root@web02 apache]# tree -L 1

    .

    |-- bin         命令

    |-- build

    |-- cgi-bin

    |-- conf        配置文件

    |-- error

    |-- htdocs      网站的根目录

    |-- icons

    |-- include

    |-- lib

    |-- logs         日志文件,包括访问日志,错误日志

    |-- man

    |-- manual

    `-- modules      模块目录

     

    bin目录

    新葡亰496net 1

     

    conf 目录

    新葡亰496net 2

     

     

    log

    新葡亰496net 3

     

     

    二、三种虚拟主机实现的基本配置
        ①基于IP虚拟主机的实现:
        多个ip,需要把中心主机取消
        打开web服务的主配置文档:vim /etc/httpd/conf/httpd.conf
        DocumentRoot 注释掉
        配置虚拟主机:
        <VirtualHost 192.168.0.20:80>
        DocumentRoot "/www/a.com"
        ServerName  www.a.com
        <VirtualHost/>
        <VirtualHost 192.168.0.25:80>
        DocumentRoot "/www/b.com"
        ServerName  www.b.com
        <VirtualHost/>
        vim /etc/hosts
        192.168.0.20  www.a.com
        192.168.0.25 www.b.com
        浏览器中输入IP地址进行实验效果的验证。
        ②基于端口:

    ServerRoot "/etc/httpd"
    用于指定Apache的运行目录,服务启动之后自动将目录改变为当前目录,在后面使用到的所有相对路径都是想对这个目录下

    3、主配置文件

    [root@web02 conf]# cat httpd.conf

    ServerRoot "/application/apache2.2.27"    服务的根目录

    Listen 80                        服务监听的端口,监听的IP默认是主机素有的IP

    <IfModule !mpm_netware_module>       模块的开头

    <IfModule !mpm_winnt_module>          模块的开头

    User daemon                           所属用户(编译安装的时候默认是daemon)

    Group daemon

    </IfModule>

    </IfModule>

    ServerAdmin you@example.com            管理员的邮箱

    DocumentRoot "/application/apache2.2.27/htdocs"默认的网站文件目录

    <Directory />                               权限控制,(对根目录)

    Options FollowSymLinks                   可以带符号链接

    AllowOverride None                       禁止相关功能:重载等

    Order deny,allow                        

    Deny from all                             不让任何让访问根目录

    </Directory>

    <Directory "/application/apache2.2.27/htdocs">     这是增加站点需要增加的配置

    Options Indexes FollowSymLinks              展示目录结构

    AllowOverride None

    控制开发能不能使用扩展模块defautl中的AccessFileName .htaccess。

    NONE是不能 ALL是可以

    Order allow,deny

    Allow from all

    </Directory>                               

    <IfModule dir_module>                        指定访问的首页文件

    DirectoryIndex index.html

    </IfModule>

    <FilesMatch "^.ht">                           文件配置

    Order allow,deny

    Deny from all

    Satisfy All

    </FilesMatch>                             

    ErrorLog "logs/error_log"                        错误日志目录

    LogLevel warn                                  错位日志级别

    <IfModule log_config_module>                    访问日志的格式类型

    LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined

    LogFormat "%h %l %u %t "%r" %>s %b" common

    <IfModule logio_module>

    LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i" %I %O" combinedio

    </IfModule>

    CustomLog "logs/access_log" common

    </IfModule>

    <IfModule alias_module>                      支持cgi动态语言没用

        ScriptAlias /cgi-bin/ "/application/apache2.2.27/cgi-bin/"

    </IfModule>

    <IfModule cgid_module>

    </IfModule>

    <Directory "/application/apache2.2.27/cgi-bin">

        AllowOverride None

        Options None

        Order allow,deny

        Allow from all

    </Directory>               

    DefaultType text/plain                    缺省的类型

    <IfModule mime_module>           

        TypesConfig conf/mime.types

        AddType application/x-compress .Z

        AddType application/x-gzip .gz .tgz

    </IfModule>

    <IfModule ssl_module>                    ssl相关的内容

    SSLRandomSeed startup builtin

    SSLRandomSeed connect builtin

    </IfModule>

     

     

        Listen 80
        Listen 8080

    User daemon                          # apache的用户,默认为daemon
    Group daemon                         # apache的用户,默认为daemon

    4、第一个优化

    当主配置文件中有

    Options Indexes FollowSymLinks

     

    我们移除apache文件目录的文件

    [root@web02 apache]# cd htdocs/

    [root@web02 htdocs]# mv index.html /tmp

    [root@web02 htdocs]# ll

    total 0

    新葡亰496net 4

    这时候apache就会显示目录结构因为找不到主页文件这是非常危险的。

    修改配置文件

    Options -Indexes FollowSymLinks

    平滑重启apache

    新葡亰496net 5

     

        <VirtualHost 192.168.0.20:80>
        DocumentRoot "/www/a.com"
        ServerName  www.a.com
        <VirtualHost/>
        <VirtualHost 192.168.0.20:8080>
        DocumentRoot "/www/b.com"
        ServerName  www.b.com
        <VirtualHost/>
        ③基于主机名:
        开启:NameVirtualHost 192.168.0.20:80
        <VirtualHost *:80>
        ServerAdmin    www.a.com
        DocumentRoot /etc/httpd/aaa/a.com
        ServerName dummy-host.example.com
        ErrorLog logs/dummy-host.example.com-error_log
        CustomLog logs/dummy-host.example.com-access_log common
        </VirtualHost>
        <VirtualHost *:80>
        ServerAdmin    www.b.com
        DocumentRoot /etc/httpd/aaa/b.com
        </VirtualHost>

    PidFile run/httpd.pid
    记录httpd守护进程的pid号码,这是系统识别一个进程的方法,系统中httpd进程可以有多个,但这个PID对应的进程是其他的父进程

    5、扩展的配置文件

    [root@web02 extra]# ll

    total 60

    -rw-r--r--. 1 root root  2859 May 19 16:25 httpd-autoindex.conf

    -rw-r--r--. 1 root root  1753 May 19 16:25 httpd-dav.conf

    -rw-r--r--. 1 root root  2344 May 19 16:25 httpd-default.conf

    -rw-r--r--. 1 root root  1103 May 19 16:25 httpd-info.conf

    -rw-r--r--. 1 root root  5078 May 19 16:25 httpd-languages.conf

    -rw-r--r--. 1 root root   949 May 19 16:25 httpd-manual.conf

    -rw-r--r--. 1 root root  3789 May 19 16:25 httpd-mpm.conf

    -rw-r--r--. 1 root root  2207 May 19 16:25 httpd-multilang-errordoc.conf

    -rw-r--r--. 1 root root 12418 May 19 16:25 httpd-ssl.conf

    -rw-r--r--. 1 root root   817 May 19 16:25 httpd-userdir.conf

    -rw-r--r--. 1 root root  1507 May 19 16:25 httpd-vhosts.conf

     

    重点的httpd-vhosts.conf httpd-mpm.conf

    了解httpd-default.conf

    其他的当没看见

     

    三、案例综合实现
        建立http服务器,要求:
        1)提供两个基于名称的虚拟主机:
        (a)www1.ilinux.org,页面文件目录为/var/www/html/www1;错误日志 为/var/log/httpd/www1.err,访问日志为/var/log/httpd/www1.access;
        (b)www2.ilinux.org,页面文件目录为/var/www/html/www2;错误日志为/var/log/httpd/www2.err,访问日志为/var/log/httpd/www2.access;
        (c)为两个虚拟主机建立各自的主页文件index.html,内容分别为其对应的主机名;
        2)www1主机仅允许192.168.0.0/24网络中的客户机访问;www2主机可以被所有主机访问;
        为http服务提供第3个虚拟主机,要求:
        1)www3.ilinux.org,页面文件目录为/var/www/html/www3;错误日志为/var/log/httpd/www3.err,访问日志为/var/log/httpd/www3.access;
        2)为此虚拟主机提供基本认证功能,并为其提供两个虚拟用户webuser1和webuser2,
        密码均为redhat,要求允许此两用户在提供密码的情况下访问此站点;
        配置过程如下:
        ①安装web服务:yum -y install httpd
        ②进入主配置文档vim /etc/httpd/conf/httpd.conf
        <VirtualHost *:80>
        DocumentRoot "/var/www/html/www1"
        ServerName  www1.ilinux.org
        Errorlog /var/log/httpd/www1.err
        CustomLog /var/log/httpd/www1.access common
        <Directory "/var/www/html/www1">
        Options Indexes
        AllowOverride None
        Order allow,deny
        Allow from 192.168.0.0/24
        </Directory>
        </VirtualHost>
        <VirtualHost *:80>
        DocumentRoot "/var/www/html/www2"
        ServerName  www2.ilinux.org
        Errorlog /var/log/httpd/www2.err
        CustomLog /var/log/httpd/www2.access common
        <Directory "/var/www/html/www2">
        Options Indexes
        AllowOverride None
        Order allow,deny
        Allow from all
        </Directory>
        </VirtualHost>
        <VirtualHost *:80>
        DocumentRoot /var/www/html/www3
        ServerName www3.ilinux.org
        ErrorLog /var/log/httpd/www3.err
        CustomLog /var/log/httpd/www3.access combined
        <Directory "/var/www/html/www3">
        Options Indexes
        AllowOverride AuthConfig
        AuthName "AuthConfig"
        AuthType basic
        AuthUserFile /etc/httpd/.htpasswd
        require user webuser1 webuser2
        Order allow,deny
        Allow from all
        </Directory>
        </VirtualHost>
        htpasswd -cm /etc/httpd/.htpasswd webuser1
        htpasswd -m /etc/httpd/.htpasswd webuser2
        ③分别在/var/www/html目录下创建www1,www2,www3目录
        vim /var/www/html/www1/index.html
        This is www1 test!
        vim /var/www/html/www2/index.html
        This is www2 test!
        vim /var/www/html/www3/index.html
        This is www3 test!
        ④service httpd start 启动web服务
        ⑤进行实验效果的验证:浏览器中分别输入www1.ilinux.org  www2.ilinux.org www3.ilinux.org

    Timeout 60
    服务器与客户端断开的时间

    1、httpd-vhosts.conf:

    如果要配置多个虚拟域名就需要多个 HOST (两个<VirtualHost *:80>之间的)

    NameVirtualHost *:80  基于域名的虚拟主机 *表示所有 后面是端口

    <VirtualHost *:80>

    ServerAdmin webmaster@dummy-host.example.com

    DocumentRoot "/application/apache2.2.27/docs/dummy-host.example.com"

    ServerName dummy-host.example.com

    ServerAlias www.dummy-host.example.com

        ErrorLog "logs/dummy-host.example.com-error_log"

        CustomLog "logs/dummy-host.example.com-access_log" common

    </VirtualHost>

     

     

    Ø  ServerAdmin       管理员邮箱

    Ø  DocumentRoot     站点目录

    Ø  ServerName       站点网址

    Ø  ServerAlias        站点网址别名

    Ø  ErrorLog          错误日志路径

    Ø  CustomLog        访问日志路径和格式

     

    四、httpd.conf 详解

    KeepAlive Off
    是否持续连接(因为每次连接都得三次握手,如果是访问量不大,建议打开此项,如果网站访问量比较大关闭此项比较好),修改为:KeepAlive On 表示允许程序性联机

    2、httpd-mpm.conf

    <IfModule !mpm_netware_module>

        PidFile "logs/httpd.pid"pid文件

    </IfModule>

     

    <IfModule !mpm_winnt_module>

    <IfModule !mpm_netware_module>

    LockFile "logs/accept.lock"                   锁文件

    </IfModule>

    </IfModule>

     

    <IfModule mpm_prefork_module>              prefork模式(默认的模式)

    StartServers          5

    MinSpareServers       5

    MaxSpareServers      10

    MaxClients          150                  并发

    MaxRequestsPerChild   0

    </IfModule>

     

    <IfModule mpm_worker_module>        work模式

    StartServers          2

    MaxClients          150

    MinSpareThreads      25

    MaxSpareThreads      75

    ThreadsPerChild      25

    MaxRequestsPerChild   0

    </IfModule>

     

    <IfModule mpm_beos_module>

    StartThreads            10

    MaxClients              50

    MaxRequestsPerThread 10000

    </IfModule>

     

                           

    <IfModule mpm_netware_module>

    ThreadStackSize      65536

    StartThreads           250

    MinSpareThreads         25

    MaxSpareThreads        250

    MaxThreads            1000

    MaxRequestsPerChild      0

    MaxMemFree             100

    </IfModule>

     

    <IfModule mpm_mpmt_os2_module>

    StartServers           2

    MinSpareThreads        5

    MaxSpareThreads       10

    MaxRequestsPerChild    0

    </IfModule>

     

    <IfModule mpm_winnt_module>

    ThreadsPerChild      150

    MaxRequestsPerChild    0

    </IfModule>

     

     

     

     

    Apache的主配置文件:/etc/httpd/conf/httpd.conf
    默认站点主目录:/var/www/html/
    Apache服务器的配置信息全部存储在主配置文件/etc/httpd/conf/httpd.conf中,这个文件中的内容非常多,用wc命令统计一共有1009行,其中大部分是以#开头的注释行。
    [root@justin ~]# wc -l /etc/httpd/conf/httpd.conf
    1009 /etc/httpd/conf/httpd.conf
    [root@justin ~]#

    MaxKeepAliveRequests 100
    表示一个连接的最大请求数

    3、httpd-default.conf

    cat extra/httpd-default.conf

    Timeout 300               连接超时 300秒

    KeepAlive On              连接保持

    MaxKeepAliveRequests 100   最多能接受多少个永久的连接

    KeepAliveTimeout 5          在同一个连接上等待下一个请求的时间

    UseCanonicalName Off 

    AccessFileName .htaccess      一般开发会把伪静态的语法写在这里面

    ServerTokens Full

    ServerSignature On           隐藏版本

    HostnameLookups Off

     

     

     

    配置文件包括三部分:
    [root@justin ~]# grep '<Section>' /etc/httpd/conf/httpd.conf -n
    33:### Section 1: Global Environment
    245:### Section 2: 'Main' server configuration
    973:### Section 3: Virtual Hosts
    [root@justin ~]#

    KeepAliveTimeout 15
    断开连接前的时间

    6、虚拟主机

    在一个机器上部署多个不同域名、不同站点目录、不同端口、不同IP的站点,就需要虚拟主机。

    跟NGINX一样apache也支持基于域名基于IP 基于端口的虚拟主机

     

    1)Global Environment---全局环境配置,决定Apache服务器的全局参数
    2)Main server configuration---主服务配置,相当于是Apache中的默认Web站点,如果我们的服务器中只有一个站点,那么就只需在这里配置就可以了。
    3)Virtual Hosts---虚拟主机,虚拟主机不能与Main Server主服务器共存,当启用了虚拟主机之后,Main Server就不能使用了

    <IfModule prefork.c>
    StartServers       8
    MinSpareServers    5
    MaxSpareServers   20
    ServerLimit      256
    MaxClients       256
    MaxRequestsPerChild  4000
    </IfModule>
    系统默认的模块,表示为每个访问启动一个进程(即当有多个连接公用一个进程的时候,在同一时刻只能有一个获得服务)。
    StartServer开始服务时启动8个进程,最小空闲5个进程,最多空闲20个进程。
    MaxClient限制同一时刻客户端的最大连接请求数量超过的要进入等候队列。
    MaxRequestsPerChild每个进程生存期内允许服务的最大请求数量,0表示永不结束

    6.1 基于域名的虚拟主机


    <IfModule worker.c>
    StartServers         4
    MaxClients         300
    MinSpareThreads     25
    MaxSpareThreads     75
    ThreadsPerChild     25
    MaxRequestsPerChild  0
    </IfModule>
    为Apache配置线程访问,即每对WEB服务访问启动一个线程,这样对内存占用率比较小。
    ServerLimit服务器允许配置进程数的上限。
    ThreadLimit每个子进程可能配置的线程上限
    StartServers启动两个httpd进程,
    MaxClients同时最多能发起250个访问,超过的要进入队列等待,其大小有ServerLimit和ThreadsPerChild的乘积决定
    ThreadsPerChild每个子进程生存期间常驻执行线程数,子线程建立之后将不再增加
    MaxRequestsPerChild每个进程启动的最大线程数,如达到限制数时进程将结束,如置为0则子线程永不结束

    a 站点目录规划

    域名

    站点目录

    www.etiantian.org

    /var/html/www

    blog.etiantian.org

    /var/html/blog

    bbs.etiantian.org

    /var/html/bbs

    1)Global Environment

    Listen 80
    监听的端口,如有多块网卡,默认监听所有网卡

    b 创建站点目录

    mkdir /var/html/{www,blog,bbs} -p

    44 ServerTokens OS

    LoadModule auth_basic_module modules/mod_auth_basic.so
    ......
    LoadModule version_module modules/mod_version.so
    启动时加载的模块

    c 创建测试文件

    for name in www blog bbs;do echo "

    [root@web02 ~]# cat /var/html/{www,blog,bbs}/index.html

    在出现错误页的时候是否显示服务器操作系统的名称,ServerTokens Prod为不显示

    Include conf.d/*.conf
    加载的配置文件

    d 修改配置文件

    cd /application/apache

    vim conf/extra/httpd-vhosts.conf

     

    <VirtualHost *:80>

    ServerAdmin 731431337@qq.com

    DocumentRoot "/var/html/www"

    ServerName www.etiantian.org

    ServerAlias etiantian.org

        ErrorLog "logs/www_error_log"

        CustomLog "logs/www_access_log" common

    </VirtualHost>

     

     

    <VirtualHost *:80>

    ServerAdmin 731431337@qq.com

    DocumentRoot "/var/html/blog"

    ServerName blog.etiantian.org

        ServerAlias etiantian.org

        ErrorLog "logs/blog_error_log"

        CustomLog "logs/blog_access_log" common

    </VirtualHost>

     

     

    <VirtualHost *:80>

    ServerAdmin 731431337@qq.com

    DocumentRoot "/var/html/bbs"

    ServerName bbs.etiantian.org

    ServerAlias etiantian.org

        ErrorLog "logs/bbs_error_log"

        CustomLog "logs/bbs_access_log" common

    </VirtualHost>

    vhost这个配置文件默认不在主配置文件中是注释状态

    需要在主配置文件中打开(去除前面的#号)

    新葡亰496net 6

    在主配置文件的下面加上

    <Directory "/var/html">

    Options  FollowSymLinks

    AllowOverride None

        Order allow,deny

        Allow from all

    </Directory>

    这一段可以到去掉注释的主配置文件的17到22行复制修改

    如果不加的话会报错403。

    57 ServerRoot "/etc/httpd"

    启动服务后转换的身份,在启动服务时通常以root身份,然后转换身份,这样增加系统安全

    e 检查语法、优雅重启

    [root@web02 conf]# ../bin/apachectl -t

    httpd: Could not reliably determine the server's fully qualified domain name, using 172.16.1.7 for ServerName

    Syntax OK

    [root@web02 conf]# ../bin/apachectl graceful

    httpd: Could not reliably determine the server's fully qualified domain name, using 172.16.1.7 for ServerName

     

    用于指定Apache的运行目录,服务启动之后自动将目录改变为当前目录,在后面使用到的所有相对路径都是想对这个目录下

    ServerAdmin root@localhost    #管理员的邮箱,如果出现问题,会在首页显示

    f 测试

    [root@web02 conf]# curl www.etiantian.org

    [root@web02 conf]# curl bbs.etiantian.org

    [root@web02 conf]# curl blog.etiantian.org

     

     

    65 PidFile run/httpd.pid

    #ServerName www.example.com:80
    默认是不需要指定的,服务器通过名字解析过程来获得自己的名字,但如果解析有问题(如反向解析不正确),或者没有DNS名字,也可以在这里指定IP地址,当这项不正确的时候服务器不能正常启动。前面启动Apache时候提示正在启动  httpd:httpd: apr_sockaddr_info_get() failed forjustin httpd: Could not  reliably determine the server's fully qualified domain name, using  127.0.0.1forServerName,解决方法就是启动该项把www.example.com:80修改为自己的域名或者直接修改为localhost

    6.2 基于端口

    在主配置文件

    [root@web02 conf]# cat httpd.conf

    Listen 80 

    Listen 8000

    Listen 9000 

     

    在vhost配置文件

    NameVirtualHost *:80

    NameVirtualHost *:8000

    NameVirtualHost *:9000

    <VirtualHost *:80>

    ServerAdmin 731431337@qq.com

    DocumentRoot "/var/html/www"

    ServerName www.etiantian.org

    ServerAlias etiantian.org

        ErrorLog "logs/www_error_log"

        CustomLog "logs/www_access_log" common

    </VirtualHost>

    <VirtualHost *:8000>

    ServerAdmin 731431337@qq.com

    DocumentRoot "/var/html/blog"

    ServerName www.etiantian.org

    ServerAlias etiantian.org

        ErrorLog "logs/blog_error_log"

        CustomLog "logs/blog_access_log" common

    </VirtualHost>

    <VirtualHost *:9000>

    ServerAdmin 731431337@qq.com

    DocumentRoot "/var/html/bbs"

    ServerName www.etiantian.org

    ServerAlias etiantian.org

        ErrorLog "logs/bbs_error_log"

        CustomLog "logs/bbs_access_log" common

    </VirtualHost>

    记录httpd守护进程的pid号码,这是系统识别一个进程的方法,系统中httpd进程可以有多个,但这个PID对应的进程是其他的父进程

    UseCanonicalName Off
    如果客户端提供了主机名和端口,Apache将会使用客户端提供的这些信息来构建自引用URL。这些值与用于实现基于域名的虚拟主机的值相同,并且对于同样的客户端可用。CGI变量SERVER_NAME和SERVER_PORT也会由客户端提供的值来构建

    7、调整apache 启动FQDN的问题

    我们在每次重启apache的时候都会提示

    [root@web02 conf]# ../bin/apachectl graceful

    httpd: Could not reliably determine the server's fully qualified domain name, using 172.16.1.7 for ServerName

     

    在主配置文件中加入

    ServerName 127.0.0.1:80

    就可以。其实这块不优化也不会对apache的运行产生任何影响。

     

    70 Timeout 60

    DocumentRoot "/var/www/html"    # apache的默认web站点目录路径,结尾不要添加斜线

    8、apache日志

    服务器与客户端断开的时间

    <Directory />     #行为对根目录的限制
        Options FollowSymLinks   # followsymlinks表示允许使用符号链接,默认为禁用
        AllowOverride None     # 表示禁止用户对目录配置文件(.htaccess进行修改)重载,普通站点不建议开启
    </Directory>

    8.1 日志格式

    新葡亰496net 7

    要指定格式只需要在日志路径后面接就可以

     

    76 KeepAlive Off

    <Directory "/var/www/html">
        Options Indexes FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
    对/var/www/html目录的一个权限的设置,options中Indexes表示当网页不存在的时候允许索引显示目录中的文件,FollowSymLinks是否允许访问符号链接文件。有的选项有ExecCGI表是否使用CGI,如Options  Includes ExecCGI  FollowSymLinks表示允许服务器执行CGI及SSI,禁止列出目录。SymLinksOwnerMatch表示当符号链接的文件和目标文件为同一用户拥有时才允许访问。AllowOverrideNone表示不允许这个目录下的访问控制文件来改变这里的配置,这也意味着不用查看这个目录下的访问控制文件,修改为:AllowOverride  All  表示允许.htaccess。Order对页面的访问控制顺序后面的一项是默认选项,如allow,deny则默认是deny,Allowfromall表示允许所有的用户,通过和上一项结合可以控制对网站的访问控制

    8.2 日志轮询

    不同于nginx 需要用脚本去实现日志轮询,apache可以使用工具。

    cronolog工具

    安装

    新葡亰496net 8

    新葡亰496net 9

     

    新葡亰496net 10

    按年、月生成不同目录
    CustomLog "|/usr/local/sbin/cronolog /logs/%Y/%m/access_www_%Y%m%d.log"  combined  (
    按天记录日志,缺点不会自动覆盖)

    ___________________________________________________________
    apache自带日志轮询工具rotatelogs(不推荐使用rotatelogs进行日志轮询)

    ■ rotatelogs 日志轮询
    ___________________________________________________________
    ErrorLog "|/usr/local/apache1.3.33/bin/rotatelogs /logs/%Y%m%d.error.log 604800"
    CustomLog "|/application/apache/bin/rotatelogs /logs/access_www_%Y%m%d..log 86400 480" combined
    CustomLog "|/application/apache/bin/rotatelogs /logs/access_www_%Y%m%d..log 86400" combined
    提示:也可以按照达到多大文件而轮询日志,此处就不提了。

    ___________________________________________________________
    ■ rotatelogs 日志轮询说明
    ___________________________________________________________
    语法
    rotatelogs [ -l ] logfile [ rotationtime [ offset ]] | [ filesizeM ]

    选项
    -l 
    使用本地时间代替GMT时间作为时间基准。注意:在一个改变GMT偏移量(比如夏令时)的环境中
    使用-l会导致不可预料的结果。 
    logfile 
    它加上基准名就是日志文件名。如果logfile中包含"%",则它会被视为用于strftime()的格式字符串;
    否则它会被自动加上以秒为单位的".nnnnnnnnnn"后缀。这两种格式都表示新的日志开始使用的时间。
    rotationtime 
    日志文件滚动的以秒为单位的间隔时间。 
    offset 
    相对于UTC的时差的分钟数。如果省略,则假定为"0"并使用UTC时间。比如,要指定UTC时差为
    "-5小时"的地区的当地时间,则此参数应为"-300"。 
    filesizeM 
    指定以filesizeM文件大小滚动,而不是按照时间或时差滚动。

    ___________________________________________________________
    ■ 日志轮询生产环境实际配置
    ___________________________________________________________
    按天轮询的常见生产环境实际配置: 
    <VirtualHost *:80>
            ServerAdmin 31333741@qq.com
            ServerName blog.etiantian.org
            DocumentRoot "/var/blog"
            ServerAlias etiantian.org
            ErrorLog "logs/www.etiantian.org-error_log"
            #CustomLog "logs/www.etiantian.org-access_www_log" common
            CustomLog "|/usr/local/sbin/cronolog /logs/access_www_%Y%m%d.log" combined
    </VirtualHost>
    提示:/logs/access_www_%Y%m%d.log 这里要写绝对路径,不能是logs/access_www_%Y%m%d.log

    不同轮询命令同时记录三份日志,并做多种轮询的写法,这个配置生产环境,并不常用,
    这里写出来是告诉大家语法功能上可以这样进行配置。

    <VirtualHost *:80>
            ServerAdmin 31333741@qq.com
            ServerName blog.etiantian.org
            DocumentRoot "/var/blog"
            ServerAlias etiantian.org
            ErrorLog "logs/www.etiantian.org-error_log"
            #CustomLog "logs/www.etiantian.org-access_www_log" common
            CustomLog "|/usr/local/sbin/cronolog /logs/access_www_%Y%m%d.log" combined
            CustomLog "|/usr/local/sbin/cronolog /logs/access_www_%Y%m%d%H.log" combined
            CustomLog "|/application/apache/bin/rotatelogs /logs/access_www_%Y%m%d%H%M.log 86400" combined
    </VirtualHost>

     

     

     

     

     

    是否持续连接(因为每次连接都得三次握手,如果是访问量不大,建议打开此项,如果网站访问量比较大关闭此项比较好),修改为:KeepAlive On 表示允许程序性联机

    <IfModule mod_userdir.c>
        UserDir disabled
    </IfModule>
    是否允许用户访问其家目录,默认是不允许

    9、不记录指定格式的元素日志

    我们希望在日志里不记录图片等格式的日志  为了PV计算的准确性

    新葡亰496net 11

     

    新葡亰496net 12

    新葡亰496net 13

     

     

     

    83 MaxKeepAliveRequests 100

    #<Directory /home/*/public_html>
    #    AllowOverride FileInfo AuthConfig Limit
    #    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    #    <Limit GET POST OPTIONS>
    #        Order allow,deny
    #        Allow from all
    #    </Limit>
    #    <LimitExcept GET POST OPTIONS>
    #        Order deny,allow
    #        Deny from all
    #    </LimitExcept>
    #</Directory>
    如果允许访问用户的家目录中的网页文件,则取消以上注释,并对其中进行修改

    10、隐藏apache版本信息

    在编译安装apache之前修改

    新葡亰496net 14

    这些是apache软件的版本号等

    新葡亰496net 15

    apache基本安装配置,Apache的主要目录和配置文件详解。unix/os.h有apache的运行平台

    编译安装之后可以修改

    新葡亰496net 16

    新葡亰496net 17

    这些是去隐藏apache的版本信息

    去主配置文件开启这些参数

    新葡亰496net 18

    新葡亰496net 19

    来自为知笔记(Wiz)

    表示一个连接的最大请求数

    DirectoryIndex index.html index.html.var    #指定所要访问的主页的默认主页名字,默认首页文件名为index.html

    89 KeepAliveTimeout 15

    AccessFileName .htaccess     #定义每个目录下的访问控制文件名,缺省为.htaccess

    断开连接前的时间

    <Files ~ "^.ht">
        Order allow,deny
        Deny from all
        Satisfy All
    </Files>
    控制不让web上的用户来查看.htpasswd和.htaccess这两个文件

    102 <IfModule prefork.c>
    103 StartServers      8
    104 MinSpareServers    5
    105 MaxSpareServers  20
    106 ServerLimit      256
    107 MaxClients      256
    108 MaxRequestsPerChild  4000
    109 </IfModule>

    TypesConfig /etc/mime.types     #用于设置保存有不同MIME类型数据的文件名

    系统默认的模块,表示为每个访问启动一个进程(即当有多个连接公用一个进程的时候,在同一时刻只能有一个获得服务)。
    StartServer开始服务时启动8个进程,最小空闲5个进程,最多空闲20个进程。
    MaxClient限制同一时刻客户端的最大连接请求数量超过的要进入等候队列。
    MaxRequestsPerChild每个进程生存期内允许服务的最大请求数量,0表示永不结束
    118 <IfModule worker.c>
    119 StartServers        4
    120 MaxClients        300
    121 MinSpareThreads    25
    122 MaxSpareThreads    75
    123 ThreadsPerChild    25
    124 MaxRequestsPerChild  0
    125 </IfModule>

    DefaultType text/plain   #默认的网页的类型

    为Apache配置线程访问,即每对WEB服务访问启动一个线程,这样对内存占用率比较小。
    ServerLimit服务器允许配置进程数的上限。
    ThreadLimit每个子进程可能配置的线程上限
    StartServers启动两个httpd进程,
    MaxClients同时最多能发起250个访问,超过的要进入队列等待,其大小有ServerLimit和ThreadsPerChild的乘积决定
    ThreadsPerChild每个子进程生存期间常驻执行线程数,子线程建立之后将不再增加
    MaxRequestsPerChild每个进程启动的最大线程数,如达到限制数时进程将结束,如置为0则子线程永不结束

    <IfModule mod_mime_magic.c>
    #   MIMEMagicFile /usr/share/magic.mime
         MIMEMagicFile conf/magic
    </IfModule>
    指定判断文件真实MIME类型功能的模块

    136 Listen 80

    HostnameLookups Off   #当打开此项功能时,在记录日志的时候同时记录主机名,这需要服务器来反向解析域名,增加了服务器的负载,通常不建议开启

    监听的端口,如有多块网卡,默认监听所有网卡

    #EnableMMAP off
    是否允许内存映射:如果httpd在传送过程中需要读取一个文件的内容,它是否可以使用内存映射。如果为on表示如果操作系统支持的话,将使用内存映射。在一些多核处理器的系统上,这可能会降低性能,如果在挂载了NFS的DocumentRoot上如果开启此项功能,可能造成因为分段而造成httpd崩溃

    123 150 LoadModule auth_basic_module modules/mod_auth_basic.so
    ......
    201 LoadModule version_module modules/mod_version.so

    #EnableSendfile off
    这个指令控制httpd是否可以使用操作系统内核的sendfile支持来将文件发送到客户端。默认情况下,当处理一个请求并不需要访问文件内部的数据时(比如发送一个静态的文件内容),如果操作系统支持,Apache将使用sendfile将文件内容直接发送到客户端而并不读取文件

    启动时加载的模块

    ErrorLog logs/error_log   #错误日志存放的位置
    LogLevel warn    #Apache日志的级别

    221 Include conf.d/*.conf

    LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
    LogFormat "%h %l %u %t "%r" %>s %b" common
    LogFormat "%{Referer}i -> %U" referer
    LogFormat "%{User-agent}i" agent
    定义了日志的格式,并用不同的代号表示

    加载的配置文件

    #CustomLog logs/access_log common
    CustomLog logs/access_log combined
    说明日志记录的位置,这里面使用了相对路径,所以ServerRoot需要指出,日志位置就存放在/etc/httpd/logs

    242 User apache
    243 Group apache

    ServerSignature On    #定义当客户请求的网页不存在,或者错误的时候是否提示apache的版本的一些信息

    启动服务后转换的身份,在启动服务时通常以root身份,然后转换身份,这样增加系统安全

    Alias /icons/ "/var/www/icons/"   #定义一些不在DocumentRoot下的文件,而可以将其映射到网页根目录中,这也是访问其他目录的一种方法,但在声明的时候切记目录后面加”/”

    2)Main server configuration

    <Directory "/var/www/icons">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
    定义对/var/www/icons/的权限,修改为 Options MultiViews FollowSymLinks表示不在浏览器上显示树状目录结构

    262 ServerAdmin root@localhost

    <IfModule mod_dav_fs.c>
         # Location of the WebDAV lock database.
         DAVLockDB /var/lib/dav/lockdb
    </IfModule>
    对mod_dav_fs.c模块儿的管理

    管理员的邮箱

    ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"   #对CGI模块儿的的别名,与Alias相似

    276 #ServerName www.example.com:80

    <Directory "/var/www/cgi-bin">
        AllowOverride None
        Options None
        Order allow,deny
        Allow from all
    </Directory>
    对/var/www/cgi-bin文件夹的管理,方法同上

    默认是不需要指定的,服务器通过名字解析过程来获得自己的名字,但如果解析有问题(如反向解析不正确),或者没有DNS名字,也可以在这里指定IP 地址,当这项不正确的时候服务器不能正常启动。前面启动Apache时候提示正在启动 httpd:httpd: apr_sockaddr_info_get() failed forjustin httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1forServerName,解决方法就是启动该项把www.example.com:80修改为自己的域名或者直接修改为 localhost

    # Redirect old-URI new-URL
    Redirect参数是用来重写URL的,当浏览器访问服务器上的一个已经不存在的资源的时候,服务器返回给浏览器新的URL,告诉浏览器从该URL中获取资源。这主要用于原来存在于服务器上的文档改变位置之后,又需要能够使用老URL能访问到原网页

    1 285 UseCanonicalName Off

    IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable Charset=UTF-8
    AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
    ...
    IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
    当一个HTTP请求的URL为一个目录的时候,服务器返回这个目录中的索引文件,如果目录中不存在索引文件,并且服务器有许可显示目录文件列表的时候,就会显示这个目录中的文件列表,为了使得这个文件列表能具有可理解性,而不仅仅是一个简单的列表,就需要前这些参数。如果使用了IndexOptionsFancyIndexing选项,可以让服务器针对不同的文件引用不同的图标。如果没有就使用DefaultIcon定义缺省图标。同样,使用AddDescription可以为不同类型的文档介入描述

    如果客户端提供了主机名和端口,Apache将会使用客户端提供的这些信息来构建自引用URL。这些值与用于实现基于域名的虚拟主机的值相同,并且对于同样的客户端可用。CGI变量SERVER_NAME和SERVER_PORT也会由客户端提供的值来构建

    AddLanguage ca .ca
    ......
    AddLanguage zh-TW .zh-tw
    添加语言

    292 DocumentRoot "/var/www/html"

    LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
    Apache支持的语言

    网页文件存放的目录

    AddDefaultCharset UTF-8  #默认支持的语言

    302 <Directory />
    303    Options FollowSymLinks
    304    AllowOverride None
    305 </Directory>

    #AddType application/x-tar .tgz   #支持的应用如果想支持对php的解析添加这样一行

    对根目录的一个权限的设置

    #AddEncoding x-compress .Z
    #AddEncoding x-gzip .gz .tgz
    支持对以.Z和.gz.tgz结尾的文件

     317 <Directory "/var/www/html">
     331    Options Indexes FollowSymLinks
     338    AllowOverride None
     343    Order allow,deny
     344    Allow from all
     346 </Directory>

    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    添加对上述两种文件的应用

    对/var/www/html目录的一个权限的设置,options中Indexes表示当网页不存在的时候允许索引显示目录中的文 件,FollowSymLinks是否允许访问符号链接文件。有的选项有ExecCGI表是否使用CGI,如Options Includes ExecCGI FollowSymLinks表示允许服务器执行CGI及SSI,禁止列出目录。SymLinksOwnerMatch表示当符号链接的文件和目标文件为 同一用户拥有时才允许访问。AllowOverrideNone表示不允许这个目录下的访问控制文件来改变这里的配置,这也意味着不用查看这个目录下的访 问控制文件,修改为:AllowOverride All 表示允许.htaccess。Order对页面的访问控制顺序后面的一项是默认选项,如allow,deny则默认是deny,Allowfromall 表示允许所有的用户,通过和上一项结合可以控制对网站的访问控制

    #AddHandler cgi-script .cgi   #修改为:AddHandler cgi-script .cgi .pl 表示允许扩展名为.pl的CGI脚本运行
    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
    添加动态处理类型为server-parsed由服务器预先分析网页内的标记,将标记改为正确的HTML标识

     360 <IfModule mod_新葡亰496net,userdir.c>
     366    UserDir disabled
     375 </IfModule>

    #ErrorDocument 404 /missing.html   #当服务器出现404错误的时候,返回missing.html页面
    Alias /error/ "/var/www/error/"   #赋值别名

    是否允许用户访问其家目录,默认是不允许

    <IfModule mod_negotiation.c>
    <IfModule mod_include.c>
        <Directory "/var/www/error">
            AllowOverride None
            Options IncludesNoExec
            AddOutputFilter Includes html
            AddHandler type-map var
            Order allow,deny
            Allow from all
            LanguagePriority en es de fr
            ForceLanguagePriority Prefer Fallback
        </Directory>
    对/var/www/error网页的权限及操作

    381 #<Directory /home/*/public_html>
    382 #    AllowOverride FileInfo AuthConfig Limit
    383 #    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    384 #    <Limit GET POST OPTIONS>
    385 #        Order allow,deny
    386 #        Allow from all
    387 #    </Limit>
    388 #    <LimitExcept GET POST OPTIONS>
    389 #        Order deny,allow
    390 #        Deny from all
    391 #    </LimitExcept>
    392 #</Directory>

    BrowserMatch "Mozilla/2" nokeepalive
    BrowserMatch "MSIE 4.0b2;" nokeepalive downgrade-1.0 force-response-1.0
    BrowserMatch "RealPlayer 4.0" force-response-1.0
    BrowserMatch "Java/1.0" force-response-1.0
    BrowserMatch "JDK/1.0" force-response-1.0
    .....
    设置特殊的参数,以保证对老版本浏览器的兼容,并支持新浏览器的特性

    如果允许访问用户的家目录中的网页文件,则取消以上注释,并对其中进行修改

    #NameVirtualHost *:80   #如果启用虚拟主机的话,必须将前面的注释去掉,而且,第二部分的内容都可以出现在每个虚拟主机部分。
    # VirtualHost example:
    #<VirtualHost *:80>
    #    ServerAdmin webmaster@www.linuxidc.com
    #    DocumentRoot /www/docs/www.linuxidc.com
    #    ServerName www.linuxidc.com
    #    ErrorLog logs/www.linuxidc.com-error_log
    #    CustomLog logs/www.linuxidc.com-access_log common
    #</VirtualHost>
    www.linuxidc.com替换为你的网址

    402 DirectoryIndex index.html index.html.var

    二、Apache扩展的配置文件
    $APACHE_HOME/conf/extra          # apache扩展的配置文件
    [root@extra]# ll
    total 56
    -rw-r--r-- 1 root root  2859 Jan 10 01:49 httpd-autoindex.conf
    -rw-r--r-- 1 root root  1753 Jan 10 01:49 httpd-dav.conf
    -rw-r--r-- 1 root root  2344 Jan 10 01:49 httpd-default.conf
    -rw-r--r-- 1 root root  1103 Jan 10 01:49 httpd-info.conf
    -rw-r--r-- 1 root root  5078 Jan 10 01:49 httpd-languages.conf
    -rw-r--r-- 1 root root   932 Jan 10 01:49 httpd-manual.conf
    -rw-r--r-- 1 root root  3789 Jan 10 01:49 httpd-mpm.conf
    -rw-r--r-- 1 root root  2207 Jan 10 01:49 httpd-multilang-errordoc.conf
    -rw-r--r-- 1 root root 11185 Jan 10 01:49 httpd-ssl.conf
    -rw-r--r-- 1 root root   817 Jan 10 01:49 httpd-userdir.conf
    -rw-r--r-- 1 root root  1507 Jan 10 01:49 httpd-vhosts.conf # 虚拟主机配置文件

    指定所要访问的主页的默认主页名字,默认首页文件名为index.html

    三、httpd-vhosts.conf虚拟主机配置文件注释
    [root@extra]# egrep -v "^.*#|^$" httpd-vhosts.conf |nl
         1  NameVirtualHost *:80                                # 基于名称的虚拟主机配置( *:80表示监听本机所有ip)
         2  <VirtualHost *:80>                                  # 定义一个虚拟主机
         3      ServerAdmin webmaster@dummy-host.example.com    # 配置管理员邮箱
         4      DocumentRoot "/application/apache2.2.22/docs/dummy-host.example.com"  # 程序的站点目录
         5      ServerName dummy-host.example.com               # 域名服务,需要apache mode_alias模块支持
         6      ServerAlias www.dummy-host.example.com          # 虚拟主机别名
         7      ErrorLog "logs/dummy-host.example.com-error_log"# 错误的日志路径
         8      CustomLog "logs/dummy-host.example.com-access_log" common  #访问日志配置(生产环境我们用combined格式代替common格式)
         9  </VirtualHost>
        10  <VirtualHost *:80>
        11      ServerAdmin webmaster@dummy-host2.example.com
        12      DocumentRoot "/application/apache2.2.22/docs/dummy-host2.example.com"
        13      ServerName dummy-host2.example.com
        14      ErrorLog "logs/dummy-host2.example.com-error_log"
        15      CustomLog "logs/dummy-host2.example.com-access_log" common
        16  </VirtualHost>

    409 AccessFileName .htaccess

    四、Apache服务存放站点的目录
    $APACHE_HOME/apache/htdocs              # 默认存放网页的路径,输入IP 到此目录 能够见到it's wroks! 就是此目录
    [root@htdocs]# less  index.html
    <html><body><h1>It works!</h1></body></html>

    定义每个目录下的访问控制文件名,缺省为.htaccess

    五、Apache服务目录结构说明
    [root@htdocs]# ls ../
     bin  build  cgi-bin  conf  error  htdocs  icons  include  lib  logs  man  manual  modules
    bin启动文件目录说明
    |-- bin                    # apache服务的命令目录
    |   |-- ab                 # http服务性能测试工具
    |   |-- apachectl          # apache启动命令
    |   |-- apr-1-config      
    |   |-- apu-1-config
    |   |-- apxs               # http服务编译和安装扩展模块使用工具,在DSO方式模块编译时用到
    |   |-- checkgid
    |   |-- dbmmanage
    |   |-- envvars
    |   |-- envvars-std
    |   |-- htcacheclean       # 清理磁盘缓冲区的控制命令
    |   |-- htdbm
    |   |-- htdigest
    |   |-- htpasswd           # 建立和更新基本认证文件
    |   |-- httpd              # httpd为apache的控制命令程序
    |   |-- httxt2dbm
    |   |-- logresolve
    |    -- rotatelogs         # apache自带的日子轮询命令(cronolog生产环境使用比较多)。

    415 <Files ~ "^.ht">
    416    Order allow,deny
    417    Deny from all
    418    Satisfy All
    419 </Files>

    conf配置文件目录
    [root@htdocs]# ls ../conf/
    extra  httpd.conf  magic  mime.types  original
    /application/apache/conf/         # apache配置所有的配置文件目录
    |-- extra                         # 额外的apache配置文件目录 如:httpd-vhost.conf
    |   |-- httpd-autoindex.conf      
    |   |-- httpd-dav.conf
    |   |-- httpd-default.conf
    |   |-- httpd-info.conf
    |   |-- httpd-languages.conf
    |   |-- httpd-manual.conf
    |   |-- httpd-mpm.conf
    |   |-- httpd-multilang-errordoc.conf
    |   |-- httpd-ssl.conf
    |   |-- httpd-userdir.conf
    |   |-- httpd-vhosts.conf
    |-- httpd.conf                     # apache主配置文件
    |-- magic
    |-- mime.types
    |-- original
    |   |-- extra
    |   |   |-- httpd-autoindex.conf
    |   |   |-- httpd-dav.conf                 # dav支持配置
    |   |   |-- httpd-default.conf             # 这个文件里配置的是apache的相关服务参数:超时时间、保持链接
    |   |   |-- httpd-info.conf
    |   |   |-- httpd-languages.conf           # 语言支持
    |   |   |-- httpd-manual.conf
    |   |   |-- httpd-mpm.conf # 服务器池管理,也是优化apache的一个配置文件(apache的模式以及配置链接数,常用模式为worker模式和profork模式,默认porfork)
    |   |   |-- httpd-multilang-errordoc.conf
    |   |   |-- httpd-ssl.conf                 # 提供apache ssl支持配置文件
    |   |   |-- httpd-userdir.conf
    |   |   |-- httpd-vhosts.conf              # 虚拟机的配置文件
    |   |-- httpd.conf

    控制不让web上的用户来查看.htpasswd和.htaccess这两个文件

    站点存放目录
    [root@apache]# ls -l htdocs/    # 默认的首页文件都放在此目录当中。
    total 4
    -rw-r--r-- 1 root root 44 Nov 21  2004 index.html

    425 TypesConfig /etc/mime.types

    日志存放目录
    [root@es apache]# tree logs
    logs                 # apache服务默认的日志路径,包括错误日志和访问日志
    |-- access_log       # apache服务访问日志 tail -f命令可以查看网页用户访问的信息
    |-- cgisock.16406    
    |-- error_log        # apache服务的错误日志。如:apache服务启动故障
    |-- httpd.pid        # httpd的pid文件,http进程启动后,会把所有进程的id号写到此文件

    用于设置保存有不同MIME类型数据的文件名

    模块目录
    [root@apache]# ls -l manual/     # apache的模块目录 如php mencache
    total 2984
    -rw-r--r-- 1 root root   543 May  6  2008 bind.html
    -rw-r--r-- 1 root root 11422 Jan  3  2012 bind.html.de

    436 DefaultType text/plain

    默认的网页的类型

    443 <IfModule mod_mime_magic.c>
    444 #  MIMEMagicFile /usr/share/magic.mime
    445    MIMEMagicFile conf/magic
    446 </IfModule>

    指定判断文件真实MIME类型功能的模块

    456 HostnameLookups Off

    当打开此项功能时,在记录日志的时候同时记录主机名,这需要服务器来反向解析域名,增加了服务器的负载,通常不建议开启

    466 #EnableMMAP off

    是否允许内存映射:如果httpd在传送过程中需要读取一个文件的内容,它是否可以使用内存映射。如果为on表示如果操作系统支持的话,将使用内存 映射。在一些多核处理器的系统上,这可能会降低性能,如果在挂载了NFS的DocumentRoot上如果开启此项功能,可能造成因为分段而造成 httpd崩溃

    475 #EnableSendfile off

    这个指令控制httpd是否可以使用操作系统内核的sendfile支持来将文件发送到客户端。默认情况下,当处理一个请求并不需要访问文件内部的 数据时(比如发送一个静态的文件内容),如果操作系统支持,Apache将使用sendfile将文件内容直接发送到客户端而并不读取文件

    1 484 ErrorLog logs/error_log

    错误日志存放的位置

    491 LogLevel warn

    Apache日志的级别

    497 LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
    498 LogFormat "%h %l %u %t "%r" %>s %b" common
    499 LogFormat "%{Referer}i -> %U" referer
    500 LogFormat "%{User-agent}i" agent

    定义了日志的格式,并用不同的代号表示

    513 #CustomLog logs/access_log common
    526 CustomLog logs/access_log combined

    说明日志记录的位置,这里面使用了相对路径,所以ServerRoot需要指出,日志位置就存放在/etc/httpd/logs

    536 ServerSignature On

    定义当客户请求的网页不存在,或者错误的时候是否提示apache的版本的一些信息

    551 Alias /icons/ "/var/www/icons/"

    定义一些不在DocumentRoot下的文件,而可以将其映射到网页根目录中,这也是访问其他目录的一种方法,但在声明的时候切记目录后面加”/”

    553 <Directory "/var/www/icons">
    554    Options Indexes MultiViews FollowSymLinks
    555    AllowOverride None
    556    Order allow,deny
    557    Allow from all
    558 </Directory>

    定义对/var/www/icons/的权限,修改为 Options MultiViews FollowSymLinks表示不在浏览器上显示树状目录结构

    563 <IfModule mod_dav_fs.c>
    564    # Location of the WebDAV lock database.
    565    DAVLockDB /var/lib/dav/lockdb
    566 </IfModule>

    对mod_dav_fs.c模块儿的管理

    576 ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

    对CGI模块儿的的别名,与Alias相似。

    582 <Directory "/var/www/cgi-bin">
    583    AllowOverride None
    584    Options None
    585    Order allow,deny
    586    Allow from all
    587 </Directory>

    对/var/www/cgi-bin文件夹的管理,方法同上

    # Redirect old-URI new-URL

    Redirect参数是用来重写URL的,当浏览器访问服务器上的一个已经不存在的资源的时候,服务器返回给浏览器新的URL,告诉浏览器从该URL中获取资源。这主要用于原来存在于服务器上的文档改变位置之后,又需要能够使用老URL能访问到原网页

    604 IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable Charset=UTF-8
    611 AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
    ...
    669 IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t

    当一个HTTP请求的URL为一个目录的时候,服务器返回这个目录中的索引文件,如果目录中不存在索引文件,并且服务器有许可显示目录文件列表的时 候,就会显示这个目录中的文件列表,为了使得这个文件列表能具有可理解性,而不仅仅是一个简单的列表,就需要前这些参数。如果使用了 IndexOptionsFancyIndexing选项,可以让服务器针对不同的文件引用不同的图标。如果没有就使用DefaultIcon定义缺省图 标。同样,使用AddDescription可以为不同类型的文档介入描述

    709 AddLanguage ca .ca
    ......
     734 AddLanguage zh-TW .zh-tw

    添加语言

    743 LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW

    Apache支持的语言

    759 AddDefaultCharset UTF-8

    默认支持的语言

    765 #AddType application/x-tar .tgz

    支持的应用如果想支持对php的解析添加这样一行

    773 #AddEncoding x-compress .Z
    774 #AddEncoding x-gzip .gz .tgz

    支持对以.Z和.gz.tgz结尾的文件

    779 AddType application/x-compress .Z
    780 AddType application/x-gzip .gz .tgz

    添加对上述两种文件的应用

    796 #AddHandler cgi-script .cgi

    修改为:AddHandler cgi-script .cgi .pl 表示允许扩展名为.pl的CGI脚本运行

    816 AddType text/html .shtml
    817 AddOutputFilter INCLUDES .shtml

    添加动态处理类型为server-parsed由服务器预先分析网页内的标记,将标记改为正确的HTML标识

    833 #ErrorDocument 404 /missing.html

    当服务器出现404错误的时候,返回missing.html页面

    855 Alias /error/ "/var/www/error/"

    赋值别名

    857 <IfModule mod_negotiation.c>
    858 <IfModule mod_include.c>
    859    <Directory "/var/www/error">
    860        AllowOverride None
    861        Options IncludesNoExec
    862        AddOutputFilter Includes html
    863        AddHandler type-map var
    864        Order allow,deny
    865        Allow from all
    866        LanguagePriority en es de fr
    867        ForceLanguagePriority Prefer Fallback
    868    </Directory>

    对/var/www/error网页的权限及操作

    895 BrowserMatch "Mozilla/2" nokeepalive
    896 BrowserMatch "MSIE 4.0b2;" nokeepalive downgrade-1.0 force-response-1.0
    897 BrowserMatch "RealPlayer 4.0" force-response-1.0
    898 BrowserMatch "Java/1.0" force-response-1.0
    899 BrowserMatch "JDK/1.0" force-response-1.0
    .....

    设置特殊的参数,以保证对老版本浏览器的兼容,并支持新浏览器的特性
    3)Virtual Hosts

    990 #NameVirtualHost *:80

    如果启用虚拟主机的话,必须将前面的注释去掉,而且,第二部分的内容都可以出现在每个虚拟主机部分。
    998 # VirtualHost example:
    1003 #<VirtualHost *:80>
    1004 #    ServerAdmin webmaster@www.linuxidc.com
    1005 #    DocumentRoot /www/docs/www.linuxidc.com
    1006 #    ServerName www.linuxidc.com
    1007 #    ErrorLog logs/www.linuxidc.com-error_log
    1008 #    CustomLog logs/www.linuxidc.com-access_log common
    1009 #</VirtualHost>

    www.linuxidc.com替换为你的网址

    转自:

           

    本文由新葡亰496net发布于电脑系统,转载请注明出处:apache基本安装配置,Apache的主要目录和配置文件

    关键词:

上一篇:新葡亰496net:诚实学WCF

下一篇:没有了