一、apache配置
ServerRoot "/etc/httpd"
#你的apache软件安装的位置。其它指定的目录如果没有指定绝对路径,则目录是相对于该目录
Listen 80
#服务器监听的端口号
Include conf.modules.d/*.conf
#apache模块存放的路径
User apache
Group apache
#apache默认执行用户及用户组
ServerAdmin root@localhost
#管理员的电子邮件,在错误页面会展示给用户
ServerName 192.168.2.77:80
#默认是不需要指定的,服务器通过名字解析过程来获得自己的名字。
#可以把www.example.com:80修改为自己的域名或者直接修改为 localhost,也可以指定IP 地址,
DocumentRoot "/var/www/html"
#网页的目录
DirectoryIndex index.html
#fModuole标签其作用是先检查当前模块是否已经加载,若已经加载,则标签中的配置有效,若没有加载,则标签中的配置无效。
#默认索引页面是index.html
AddDefaultCharset UTF-8
#设置编码类型
MIMEMagicFile conf/magic
#通过读取部分文件内容自动猜测文件的MIME类型
#它被作为当mod_mime无法解析时,用来处理的"第二道防线"
#如果它被使用,会显著影响服务器的性能
EnableSendfile on
#使用操作系统内核的sendfile支持来将文件发送到客户端,
IncludeOptional conf.d/*.conf
二、Directory标签配置介绍
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
Order allow, deny
使用
(1)Options
Options选项用于定义目录使用哪些特性,包括Indexes、MultiViews和ExecCGI等
Indexes 允许目录浏览,Apache以超文本形式返回目录中的文件和子目录列表
MultiViews 允许内容协商的多重视图MultiViews其实是Apache的一个智能特性。当客户访问目录 中一个不存在的对象时,如访问“http://192.168.16.177/icons/a”,则Apache会查找这个目录下所有a.*文件。由于 icons目录下存在a.gif文件,因此Apache会将a.gif文件返回给客户,而不是返回出错信息
All All包含了除MultiViews之外的所有特性,如果没有Options语句,默认为All
ExecCGI 允许在该目录下执行CGI脚本
FollowSymLinks 可以在该目录中使用符号连接(软连接)
Includes 允许服务器端包含功能,准许SSI
IncludesNoExec 允许服务器端包含功能,但禁用执行CGI脚本
SymLinksIfOwnerMatch 在该目录中仅仅跟踪本站点内的链接
(2)AllowOverride None
AllowOverride选项用于定义位于每个目录下.htaccess(访问控制)文件中的指令类型。基于安全和效率的原因,虽然可以通 过.htaccess来设置目录的访问权限,但应尽可能地避免使用.htaccess文件,所以一般将AllowOverride设置为”None”,即 禁止使用.htaccess文件,而将目录权限的设置放在主配置文件httpd.conf的
(3)设置缺省的访问权限与Allow和Deny语句的处理顺序
Order deny ,allow 先执行deny后执行allow,除了deny禁止,其他都可以访问
例1:由于Allow语句覆盖了Deny语句,因此这3条语句是允许所有客户的访问
Order deny ,allow
Allow from 192.168.16.0/24
Deny from 192.168.16.111
例2:仅允许来自网络192.168.16.0/24客户机的访问,但IP地址为192.168.16.111的客户机除外
Order allow,deny
Allow from 192.168.16.0/24
Deny from 192.168.16.111
三、Files标签
Require all denied
四、Location网络空间容器
下例中的配置会拒绝对任何以"/private"开头的URL路径的访问
Order Allow,Deny
Deny from all
当指令应该作用于文件系统时,总是用
五、日志格式
ErrorLog "logs/error_log"
#错误日志存放路径
LogLevel warn
#收集日志级别
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
CustomLog "logs/access_log" combined
#定义日志格式
六、Alias,ScriptAlias映射
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
#任何以/cgi-bin/开头的资源都将映射到/var/www/cgi-bin/目录中,且视之为CGI程序
AllowOverride None
Options None
Require all granted
#ScriptAlias和Alias都是映射,只是ScriptAlias映射的文件视为CGI程序
七、MIME类型
TypesConfig /etc/mime.types #指定MIME类型映射文件
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz #增加.Z .tgz等类型映射
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
#如果访问.mp4文件,apache将无法处理。 添加AddType video/mp4 mp4重启后就能够播放
八、虚拟主机
基于域名的虚拟主机
NameVirtualHost *:80
ServerName www.domain.tld
ServerAlias domain.tld *.domain.tld
DocumentRoot /www/domain
基于IP的虚拟主机
ServerName www.test1.com
DocumentRoot /www/test1/
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow From All
基于端口的虚拟主机
Listen 8080
DocumentRoot /var/www/test2
ServerName www.test2.com
九、代理服务器
反向代理
ServerAdmin [email protected]
ServerName www.test.com
ProxyRequests Off
Order deny,allow
Allow from all
ProxyPass / http://192.168.2.2:8000/
ProxyPa***everse / http://192.168.2.3:8000/
正向代理
ProxyRequests On
Order deny,allow
Deny from all
Allow from all
其中192.168.2.4:80 为代理服务器的ip地址和端口