标签:apache
一、Apache配置文件
ServerRoot apache主目录
Listen 监听端口,要监听多个端口需写多个Listen选项
LoadModule 加载模块
<IfModule unixd_module> 模块设置
User daemon
Group daemon
</IfModule>
ServerAdmin you@example.com 管理员邮箱,生产环境中很少用此功能发邮件
<Directory /> 目录设置
AllowOverride none
Require all denied
</Directory>
DocumentRoot "/usr/local/apache2/htdocs" 首页文档根目录,带递归效果
<Directory "/usr/local/apache2/htdocs"> 首页文档根目录具体配置
Options Indexes FollowSymLinks
AllowOverride None 基于用户名密码访问控制的开关
Require all granted 基于客户端地址访问控制
</Directory>
选项:Indexes 列出当前首页文档根目录下的所有内容
FollowSymLinks 允许首页文件是链接文件
<IfModule dir_module>
DirectoryIndex index.html 默认支持的首页名
</IfModule>
<Files ".ht*"> 文件设置
Require all denied 禁止其他用户访问”.ht*”的文件
</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>
例:192.168.216.42 - - [19/Sep/2015:08:26:47 +0800] "GET /test.php HTTP/1.1" 200 51907
第一项:客户端的IP地址
第二项:验证信息
第三项:用户名密码信息
第四项:时间信息 日/月/年:小时:分钟:秒 时区
第五项:操作
第六项:操作对象
第七项:使用的协议
第八项:操作的操作代码,以2开头的为成功的操作,以4开头的为有问题的操作
第九项:操作产生的数据量
CustomLog "logs/access_log" common 访问日志
</IfModule>
<IfModule alias_module> 别名设置
ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"
</IfModule>
cgi:处理用户请求的核心部分
网站请求流程:用户访问请求→网站服务器→cgi程序→网站服务器→回馈用户
<IfModule mime_module>
TypesConfig etc/mime.types 设置应用程序的类型
AddType application/x-compress .Z 增加应用类型
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php .phtml .phps
</IfModule>
<IfModule proxy_html_module> 代理功能
Include etc/extra/proxy-html.conf
</IfModule>
<IfModule ssl_module> SSL加密功能
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>
二、实验
1.基于用户名密码访问控制
进入首页文档根目录
vi .htaccess 不区分大小写
AuthName “50 docs” 提示信息
AuthType basic 认证类型
AuthUserFile /share/apache.passwd 指定用户名密码文件存放位置,文件名自定义
require valid-user 允许密码文件中所有用户访问
/usr/local/apache2/bin/htpasswd -c /share/apache.passwd user1
建立密码文件,添加第一个用户是用-c选项,再添加时用-m选项
建立文件后,将Apache配置文件中的基于用户名密码访问控制开关由None改为All
2.基于客户端地址访问控制
Apache配置文件中
Require all granted 允许所有
Require all denied 拒绝所有
<requireall> 仅允许某个IP地址访问
require all granted
require ip 192.168.216.37
</requireall>
<requireall> 仅拒绝某个IP地址访问
require all granted
require not ip 192.168.216.42
</requireall>
在Apache的2.2版本中 order allow,deny 默认拒绝所有
allow from 192.168.216.0/24 但允许某个网段
order deny,allow 默认允许所有
deny from 192.168.216.37 但拒绝某个IP
3.虚拟主机
基于IP的虚拟主机:一台服务器,多个IP,搭建多个网站
1).添加虚拟IP地址:ifconfig eth0:0 192.168.216.36 netmask 255.255.255.0
2).新建两个目录创建首页文件:mkdir xdl baidu
3).修改虚拟主机配置文件:vi /usr/local/apache2/etc/extra/httpd-vhosts.conf
<VirtualHost 192.168.216.36:80>
DocumentRoot "/usr/local/apache2/xdl"
</VirtualHost>
<Directory "/usr/local/apache2/xdl">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<VirtualHost 192.168.216.37:80>
DocumentRoot "/usr/local/apache2/baidu"
</VirtualHost>
<Directory "/usr/local/apache2/baidu">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
4).Apache配置文件中启用Virtual hosts:Include etc/extra/httpd-vhosts.conf
基于端口的虚拟主机:一台服务器,一个IP,搭建多个网站,每个网络使用不同端口访问
1).新建两个目录创建首页文件:mkdir xdl baidu
2).修改虚拟主机配置文件:vi /usr/local/apache2/etc/extra/httpd-vhosts.conf
Listen 8080
<VirtualHost 192.168.216.37:80>
DocumentRoot "/usr/local/apache2/xdl"
</VirtualHost>
<Directory "/usr/local/apache2/xdl">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<VirtualHost 192.168.216.37:8080>
DocumentRoot "/usr/local/apache2/baidu"
</VirtualHost>
<Directory "/usr/local/apache2/baidu">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
3).Apache配置文件中启用Virtual hosts:Include etc/extra/httpd-vhosts.conf
基于域名的虚拟主机:一台服务器,一个IP,搭建多个网站,每个网站使用不同域名访问
1).新建两个目录创建首页文件:mkdir xdl baidu
2).修改虚拟主机配置文件:vi /usr/local/apache2/etc/extra/httpd-vhosts.conf
<VirtualHost 192.168.216.37:80>
DocumentRoot "/usr/local/apache2/xdl"
ServerName www.xdl.com
</VirtualHost>
<Directory "/usr/local/apache2/xdl">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<VirtualHost 192.168.216.37:80>
DocumentRoot "/usr/local/apache2/baidu"
ServerName www.baidu.com
</VirtualHost>
<Directory "/usr/local/apache2/baidu">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
3).Apache配置文件中启用Virtual hosts:Include etc/extra/httpd-vhosts.conf
在Apache的2.2版本中需打开NameVirtualHost *:80
4.个人主页
为每个用户分别添加不同的个人主页
1).Apache配置文件中启用User home directories:Include etc/extra/httpd-userdir.conf
2).Apache配置文件中启用配置模块:LoadModule userdir_module modules/mod_userdir.so
3).在用户家目录下新建目录用于创建首页文件,并更改权限
5.页面间跳转
1).Apache配置文件中启用配置模块:LoadModule rewrite_module modules/mod_rewrite.so
2).在要作跳转的首页文档根目录下建立文件:
vi .htaccess
rewriteengine on 启用重写功能
rewritecond %{HTTP_HOST} www.xdl.com 具体怎样重启
rewriterule .* http://www.baidu.com 将网页跳转到www.baidu.com
3).修改虚拟主机配置文件httpd-vhosts.conf ,将 AllowOverride None改为AllowOverride All
本文出自 “曾臻” 博客,谢绝转载!
标签:apache
原文地址:http://10725154.blog.51cto.com/10715154/1696905