首页 > 代码库 > apache基础
apache基础
一、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"
#网页的目录
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
#fModuole标签其作用是先检查当前模块是否已经加载,若已经加载,则标签中的配置有效,若没有加载,则标签中的配置无效。
#默认索引页面是index.html
AddDefaultCharset UTF-8
#设置编码类型
<IfModule mime_magic_module>
MIMEMagicFile conf/magic
</IfModule>
#通过读取部分文件内容自动猜测文件的MIME类型
#它被作为当mod_mime无法解析时,用来处理的"第二道防线"
#如果它被使用,会显著影响服务器的性能
EnableSendfile on
#使用操作系统内核的sendfile支持来将文件发送到客户端,
IncludeOptional conf.d/*.conf
二、Directory标签配置介绍
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
Order allow, deny
</Directory>
使用<Directory 目录路径>和</Directory>这对语句为主目录或虚拟目录设置权限,它们是一对容器语句,必须成对出现,它们之间封装的是具体 的设置目录权限语句,这些语句仅对被设置目录及其子目录起作用
(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标签
<Files>指令提供了基于文件名的访问控制,类似于<Directory>和<Location>指令
<Files ".ht*">
Require all denied
</Files>
四、Location网络空间容器
下例中的配置会拒绝对任何以"/private"开头的URL路径的访问
<Location /private>
Order Allow,Deny
Deny from all
</Location>
当指令应该作用于文件系统时,总是用<Directory>或<Files>;而当指令作用于不存在于文件系统的对象时,就用<Location>
五、日志格式
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>
#定义日志格式
六、Alias,ScriptAlias映射
<IfModule alias_module>
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
</IfModule>
#任何以/cgi-bin/开头的资源都将映射到/var/www/cgi-bin/目录中,且视之为CGI程序
<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
#ScriptAlias和Alias都是映射,只是ScriptAlias映射的文件视为CGI程序
七、MIME类型
<IfModule mime_module>
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
</IfModule>
#如果访问.mp4文件,apache将无法处理。 添加AddType video/mp4 mp4重启后就能够播放
八、虚拟主机
基于域名的虚拟主机
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.domain.tld
ServerAlias domain.tld *.domain.tld
DocumentRoot /www/domain
</VirtualHost>
基于IP的虚拟主机
<VirtualHost 192.168.1.11:80>
ServerName www.test1.com
DocumentRoot /www/test1/
<Directory "/www/test1">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow From All
</Directory>
</VirtualHost>
基于端口的虚拟主机
Listen 8080
<VirtualHost 192.168.1.10:8080>
DocumentRoot /var/www/test2
ServerName www.test2.com
</VirtualHost>
九、代理服务器
反向代理
<VirtualHost *:80>
ServerAdmin test@test.com
ServerName www.test.com
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://192.168.2.2:8000/
ProxyPassReverse / http://192.168.2.3:8000/
</VirtualHost>
正向代理
<IfModule mod_proxy.c>
ProxyRequests On
<Proxy 192.168.2.4:80>
Order deny,allow
Deny from all
Allow from all
</Proxy>
</IfModule>
其中192.168.2.4:80 为代理服务器的ip地址和端口
本文出自 “宁静致远” 博客,请务必保留此出处http://irow10.blog.51cto.com/2425361/1909675
apache基础