本文首发:https://www.somata.net/2019/linux_centos_httpd_config_comment.html
如果没看懂可以去看看官方发布的文档 apache官方文档
conf/httpd.conf
ServerRoot "/etc/httpd" # 指定服务配置根目录
Listen 80 # 监听端口
Include conf.modules.d/*.conf # 包含模块配置文件
User apache # 使用的用户进程和组
Group apache
ServerAdmin root@localhost # 服务器管理员邮箱,用于错误提示。
DocumentRoot "/var/www/html" # 指定服务网页根目录
<Directory /> # 为指定目录设置不同权限
AllowOverride none # 禁止使用.htaccess 中的指令
Require all denied # 禁止所有访问
</Directory>
<Directory "/var/www">
AllowOverride None
Require all granted # 允许访问
</Directory>
<Directory "/var/www/html">
Options Indexes FollowSymLinks # 允许的参数(索引(建议禁用),跟随软连接)
AllowOverride None
Require all granted
</Directory>
<IfModule dir_module>
DirectoryIndex index.html # 指定默认首页
</IfModule>
<Files ".ht*">
Require all denied # 禁止访问该文件
</Files>
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" combined # 指定日志文件名和格式(结合)
</IfModule>
<IfModule alias_module>
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" # 路径别名
</IfModule>
<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
<IfModule mime_module> # 指定文件格式和mime对应
TypesConfig /etc/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</IfModule>
AddDefaultCharset UTF-8 # 指定默认编码
<IfModule mime_magic_module>
MIMEMagicFile conf/magic # 指定mime
</IfModule>
EnableSendfile on # 开启sendfile功能
# sendfile功能必须在Linux kernel 2.1版本以后内核中才能开启
# sendfile功能直接跳过了将内容复制到用户缓冲区的过程,直接将文件内容复制到了socket缓冲区
# 加快了文件的发送速度。
IncludeOptional conf.d/*.conf
conf.d/autoindex.conf
IndexOptions FancyIndexing HTMLTable VersionSort # 索引选项
Alias /icons/ "/usr/share/httpd/icons/"
<Directory "/usr/share/httpd/icons">
Options Indexes MultiViews FollowSymlinks
AllowOverride None
Require all granted
</Directory>
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/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 # 指定要隐藏的文件。
conf.d/welcome.conf
<LocationMatch "^/+$"> # 仅将该规则用于规则匹配的URL
Options -Indexes # 去除所有参数
ErrorDocument 403 /.noindex.html # 错误返回代码和网页
</LocationMatch>
<Directory /usr/share/httpd/noindex>
AllowOverride None
Require all granted
</Directory>
Alias /.noindex.html /usr/share/httpd/noindex/index.html
Alias /noindex/css/bootstrap.min.css /usr/share/httpd/noindex/css/bootstrap.min.css
Alias /noindex/css/open-sans.css /usr/share/httpd/noindex/css/open-sans.css
Alias /images/apache_pb.gif /usr/share/httpd/noindex/images/apache_pb.gif
Alias /images/poweredby.png /usr/share/httpd/noindex/images/poweredby.png
conf.d/ssl.conf
Listen 443 https
SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog # 加密私钥的对话类型
SSLSessionCache shmcb:/run/httpd/sslcache(512000) # SSL对话密钥的存储位置
SSLSessionCacheTimeout 300 # SSL对话密钥的超时时间
SSLRandomSeed startup file:/dev/urandom 256 # 随机种子的获取地址
SSLRandomSeed connect builtin # 如果无法使用urandom则使用内置随机数生成器
SSLCryptoDevice builtin # 硬件加密策略,默认使用内置,可是使用openssl engine 插叙是否可是使用其他硬件加密策略
#SSLCryptoDevice rdrand # 这个是intel的硬件加密引擎
<VirtualHost _default_:443>
ErrorLog logs/ssl_error_log # 指定错误日志位置
TransferLog logs/ssl_access_log # 指定默认日志位置
LogLevel warn # 指定日志级别
SSLEngine on # 开启 SSL 加密引擎
SSLProtocol all -SSLv2 # 配置所加密策略可用,取消使用SSLv2
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA # 密码交换策略
# HIGH:使用所有Triple-DES的密码
# MEDIUM:所有具有128位加密的密码
# 这里的 ! 是用于禁止指定的策略分别是aNULL(没有身份验证),MD5(MD5哈希函数),IDEA(IDEA加密)
SSLCertificateFile /etc/pki/tls/certs/localhost.crt # 证书存储位置
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key # 密钥存储位置
<Files ~ ".(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars # 这里的选项是用于SSL连接的额外配置
# 主要是给脚本提供一些其他的与SSL相关环境变量,不过会消耗部分系统资源,推荐关闭。下同。
</Files>
<Directory "/var/www/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-5]" # 这个是关于User-Agent的相关参数
nokeepalive ssl-unclean-shutdown
downgrade-1.0 force-response-1.0
# 第一个参数是正则匹配User-Agent,然后会创建后面的环境这些环境变量,并且变量默认值为1
CustomLog logs/ssl_request_log # 日志参数
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x "%r" %b"
</VirtualHost>
本文经「原本」原创认证,作者乾坤盘,访问yuanben.io查询【KWDNERPU】获取授权信息。