天天看点

apache2.2 httpd.conf解析

#配置语法说明:

#一、逻辑语句:
#类似if语句,if程序名或者是if模块名,表示启用时才配置
#<IfModule ***mod***>
#</IfModule>

#二、配置语法:
#以下被作用的变量可以使用正则和通配符
#作用于''中的目录及以下子目录
#<Directory ''>
#</Directory>
#作用于''命名的文件
#<file ''>
#</file>
#以上两个可以互相嵌套,嵌套之后作用域会改变
#作用于url的设定,不与文件系统互相嵌套
#<Location url>
#</Location>

#三、权限语法:
#写在以上目录和url配置中,
#例子:
#------------
#先写访问限制方式
    #显示html目录,如果有index.html,则此目录显示index.html
#    Options Indexes FollowSymLinks
    #不支持重构url的.文件
#    AllowOverride None
#--------------
#在选择可以访问的用户
    #访问权限,所有允许
#    Order allow,deny
#   Allow from all


#配置信息说明:

#一、不常用变量设置:
#刷新方面的
ServerTokens OS
#守护进程
#PidFile run/httpd.pid
#超时设置(一般是一次响应的)
Timeout 60
#用户和组设置
#用户设置 apache
User apache
#组设置  apache
Group apache
#服务器管理  [email protected]
ServerAdmin [email protected]
#一个支持url带不带~号的开关及模块
<IfModule mod_userdir.c>
    UserDir disabled
</IfModule>
#一个关于,Index文件的先后顺序
DirectoryIndex index.html index.html.var
#是否开启读取客户机dns,会增加消耗
HostnameLookups Off
#一种返回url的标准开关
UseCanonicalName Off
#打开情况下,用户请求网页不存在会返回apache信息和服务器的名字
ServerSignature On
#当旧url不存在,从新url获取资源
# Redirect old-URI new-URL
#浏览器使用的编码标准
AddDefaultCharset UTF-8
#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



#http请求和索引的设定
IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable Charset=UTF-8
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif /core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
DefaultIcon /icons/unknown.gif
ReadmeName README.html
HeaderName HEADER.html
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t

#AddEncoding用于告诉一些使用压缩的MIME类型,这样可以让浏览器进行解压缩操作。
AddLanguage ca .ca
AddLanguage cs .cz .cs
AddLanguage da .dk
AddLanguage de .de
AddLanguage el .el
AddLanguage en .en
AddLanguage eo .eo
AddLanguage es .es
AddLanguage et .et
AddLanguage fr .fr
AddLanguage he .he
AddLanguage hr .hr
AddLanguage it .it
AddLanguage ja .ja
AddLanguage ko .ko
AddLanguage ltz .ltz
AddLanguage nl .nl
AddLanguage nn .nn
AddLanguage no .no
AddLanguage pl .po
AddLanguage pt .pt
AddLanguage pt-BR .pt-br
AddLanguage ru .ru
AddLanguage sv .sv
AddLanguage zh-CN .zh-cn
AddLanguage zh-TW .zh-tw
#增加特定后缀
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl    .crl
#增加以什么处理特定类型
AddHandler cgi-script .py
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

#在重构规则的时候,使用.htaccess后缀文件来重构
AccessFileName .htaccess
#当配置支持.ht后缀文件编辑打开目录权限时,不允许用户访问.ht*(htaccess)文件
<Files ".ht*">
    Require all denied
</Files>
#或者
#<FilesMatch "^\.ht*">
# Order allow,deny
#  Deny from All
#<FilesMatch>

#长链接设置
#长链接开关
KeepAlive Off
#长链接超时时间
KeepAliveTimeout 15
#链接请求次数,与长链接有关
MaxKeepAliveRequests 100

#用于保存有不同的文档类型的文件名
TypesConfig /etc/mime.types
#未知扩展名则使用  text/plain
#DefaultType text/plain
#一个确定文档类型的模块,if使用,则去哪读取
<IfModule mod_mime_magic.c>
#   MIMEMagicFile /usr/share/magic.mime
    MIMEMagicFile conf/magic
</IfModule>
#mime--指后缀名因特网标准,例子:
#文件后缀        MIME类型
#.ai        application/postscript
#.eps        application/postscript
#.exe        application/octet-stream
#.doc        application/vnd.ms-word
#.xls        application/vnd.ms-excel
#.ppt        application/vnd.ms-powerpoint
#.pps        application/vnd.ms-powerpoint
#.pdf        application/pdf
#.xml        application/xml
#.odt        application/vnd.oasis.opendocument.text
#.swf        application/x-shockwave-flash

#对浏览器的支持,以保证支持旧版本和新版本的特性
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
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "MS FrontPage" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully
BrowserMatch "^gnome-vfs/1.0" redirect-carefully
BrowserMatch "^XML Spy" redirect-carefully
BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully

#二、进程配置
#apache服务器会使用预先创建线程的模式,工作模式的选择,可以通过修改工作模块的配置,需要寻找别的文件夹:
#	2.2版本分为:
#		prefork mpm(多进程单线程)-问题:资源占用率较大
#		work mpm(多进程多线程)(1个监听线程)-如果开启长链接(keep-live)线程占用时间过长,会必须超时才能释放,
#		过多线程被这样占用会导致高并发无线程可用
#	2.4版本多了一个
#		event mpm(多进程多线程)(一个线程管理分配)--当有真实请求过来的时候,
#		将请求传递给服务线程,执行完毕后,又允许它释放,这样增强了在高并发场景下的请求处理能力
#对于apache进程工作模式的配置
<IfModule prefork.c>
StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  4000
</IfModule>
<IfModule worker.c>
StartServers         4
MaxClients         300
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     25
MaxRequestsPerChild  0
</IfModule>

#三、加载功能模块
# Example:
# LoadModule foo_module modules/mod_foo.so
#
#LoadModule mpm_event_module modules/mod_mpm_event.so
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
#LoadModule mpm_worker_module modules/mod_mpm_worker.so
LoadModule authn_file_module modules/mod_authn_file.so
#LoadModule authn_dbm_module modules/mod_authn_dbm.so
#LoadModule authn_anon_module modules/mod_authn_anon.so
#LoadModule authn_dbd_module modules/mod_authn_dbd.so
#LoadModule authn_socache_module modules/mod_authn_socache.so
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_user_module modules/mod_authz_user.so
#LoadModule authz_dbm_module modules/mod_authz_dbm.so
#LoadModule authz_owner_module modules/mod_authz_owner.so
#LoadModule authz_dbd_module modules/mod_authz_dbd.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule auth_basic_module modules/mod_auth_basic.so
#LoadModule auth_form_module modules/mod_auth_form.so
#LoadModule auth_digest_module modules/mod_auth_digest.so
#LoadModule allowmethods_module modules/mod_allowmethods.so
#LoadModule file_cache_module modules/mod_file_cache.so
#LoadModule cache_module modules/mod_cache.so
#LoadModule cache_disk_module modules/mod_cache_disk.so
#LoadModule cache_socache_module modules/mod_cache_socache.so
#LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule socache_dbm_module modules/mod_socache_dbm.so
#LoadModule socache_memcache_module modules/mod_socache_memcache.so
#LoadModule watchdog_module modules/mod_watchdog.so
#LoadModule macro_module modules/mod_macro.so
#LoadModule dbd_module modules/mod_dbd.so
#LoadModule dumpio_module modules/mod_dumpio.so
#LoadModule buffer_module modules/mod_buffer.so
#LoadModule ratelimit_module modules/mod_ratelimit.so
LoadModule reqtimeout_module modules/mod_reqtimeout.so
#LoadModule ext_filter_module modules/mod_ext_filter.so
#LoadModule request_module modules/mod_request.so
#LoadModule include_module modules/mod_include.so
LoadModule filter_module modules/mod_filter.so
#LoadModule substitute_module modules/mod_substitute.so
#LoadModule sed_module modules/mod_sed.so
#LoadModule deflate_module modules/mod_deflate.so
LoadModule mime_module modules/mod_mime.so
LoadModule log_config_module modules/mod_log_config.so
#LoadModule log_debug_module modules/mod_log_debug.so
#LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
#LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so
#LoadModule unique_id_module modules/mod_unique_id.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule version_module modules/mod_version.so
#LoadModule remoteip_module modules/mod_remoteip.so
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
#LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
#LoadModule proxy_uwsgi_module modules/mod_proxy_uwsgi.so
#LoadModule proxy_fdpass_module modules/mod_proxy_fdpass.so
#LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_express_module modules/mod_proxy_express.so
#LoadModule proxy_hcheck_module modules/mod_proxy_hcheck.so
#LoadModule session_module modules/mod_session.so
#LoadModule session_cookie_module modules/mod_session_cookie.so
#LoadModule session_dbd_module modules/mod_session_dbd.so
#LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
#LoadModule ssl_module modules/mod_ssl.so
#LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
#LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
#LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
#LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so
LoadModule unixd_module modules/mod_unixd.so
#LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
#LoadModule info_module modules/mod_info.so
<IfModule !mpm_prefork_module>
    LoadModule cgid_module modules/mod_cgid.so
</IfModule>
<IfModule mpm_prefork_module>
    LoadModule cgi_module modules/mod_cgi.so
</IfModule>
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
#LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
#LoadModule actions_module modules/mod_actions.so
#LoadModule speling_module modules/mod_speling.so
#LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
#LoadModule rewrite_module modules/mod_rewrite.so

#四、监听设置
#监听端口
Listen 80
#引用其他配置文件
Include /etc/httpd/conf.d/*.conf
#Include conf.d/ssl/ssl.conf

#错误日志存放,以及具体的书写定义
ErrorLog "/etc/httpd/logs/httpd-error.log"
LogLevel warn
#apache2.2
#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 /var/log/httpd-access.log common
#CustomLog /var/log/httpd-referer.log referer
#CustomLog /var/log/httpd-agent.log agent
#CustomLog /var/log/httpd-access.log combined
#apache2.4
<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
    #CustomLog "logs/access_log" combined
</IfModule>



#五、目录设置
#apache的读取根目录,
ServerRoot "/usr/local/apache2.4"
#网站服务根目录设置
DocumentRoot "/var/www/html"
#默认域名设置
ServerName localhost:80

#六、文件管理设置
#目录及文件管理设置,读取方式以及权限
#/的目录设置
<Directory />
#禁止显示html目录
    Options FollowSymLinks
#AllowOverride参数就是指明Apache服务器是否去找.htacess文件作为配置文件,
#如果设置为none,那么服务器将忽略.htacess文件,如果设置为All,那么所有在.htaccess文件里有的指令都将被重写。
    AllowOverride None
</Directory>
#/var/www/html的目录设置,也就是根目录
<Directory "/var/www/html">
    #显示html目录,如果有index.html,则此目录显示index.html
    Options Indexes FollowSymLinks
    #不支持重构url的.文件
    AllowOverride None
    #用户权限,所有允许
    Order allow,deny
    Allow from all
</Directory>

#七、虚拟主机
#与监听端口相对应,在虚拟主机中可以设置修改部分参数,以及设置目录标签和文件管理标签
#<VirtualHost ip:端口号>
#</VirtualHost>

#自己配置的默认80端口接收主机,权限等在上面有默认设置
#多端口部署多项目
#Listen 192.168.88.238:80
#Listen 192.168.88.238:8080
#<VirtualHost 192.168.88.238:80>
#    DocumentRoot "/var/www/html/main/account_giscript/server_python"
#    ServerName 192.168.88.238:80
#</VirtualHost>
#<VirtualHost 192.168.88.238:8080>
#    DocumentRoot "/var/www/html/main/account_giscript/server"
#    ServerName 127.0.0.2:80
#</VirtualHosnt>

#八、扩展配置
#先加载模块,上面有cgi_moudle
#cgi脚本设置,用于支持运行.py脚本,通过设置目录和目录运行达成
#ScriptAlias /cgi-bin/ "/var/www/html/main/account_giscript/server_python/"
#cgi 目录配置
#<Directory "/var/www/html/main/account_giscript/server_python/">
#    AllowOverride None
#    Options +ExecCGI
#    Order allow,deny
#    Allow from all
#</Directory>
#AddHandler cgi-script(cgi脚本) .py(文件类型)

#Alias /icons/ "/var/www/icons/"
#icons 目录配置
#<Directory "/var/www/icons">
#    Options Indexes MultiViews FollowSymLinks
#    AllowOverride None
#    Order allow,deny
#    Allow from all
#</Directory>

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