11月15日任务
11.18 Apache用户认证
11.19/11.20 域名跳转
11.21 Apache访问日志php
1.Apache用户认证apache

- vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //把123.com那个虚拟主机编辑成以下内容
- <VirtualHost *:80>
- DocumentRoot "/data/wwwroot/www.123.com"
- ServerName www.123.com
- <Directory /data/wwwroot/www.123.com> //指定认证的目录
- AllowOverride AuthConfig //这个至关于打开认证的开关
- AuthName "123.com user auth" //自定义认证的名字,做用不大
- AuthType Basic //认证的类型,通常为Basic,其余类型阿铭没用过
- AuthUserFile /data/.htpasswd //指定密码文件所在位置
- require valid-user //指定须要认证的用户为所有可用用户
- </Directory>
- </VirtualHost>
- /usr/local/apache2.4/bin/htpasswd -cm /data/.htpasswd aming 用Apache自带的密码工具生成一个密码
- 从新加载配置-t , graceful
- 绑定hosts,浏览器测试
- curl -x127.0.0.1:80 www.123.com //状态码为401
- curl -x127.0.0.1:80 -uaming:passwd www.123.com //状态码为200 指定用户名和密码
实验:一vim
- 编辑vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //把123.com那个虚拟主机编辑成以下内容






实验:二浏览器

- 还能够针对单个文件进行认证
- <VirtualHost *:80>
- DocumentRoot "/data/wwwroot/www.123.com"
- ServerName www.123.com
- <FilesMatch admin.php>
- AllowOverride AuthConfig
- AuthName "123.com user auth"
- AuthType Basic
- AuthUserFile /data/.htpasswd
- require valid-user
- </FilesMatch>
- </VirtualHost>






2. 域名跳转curl

- 需求,把123.com域名跳转到www.123.com,配置以下:
- <VirtualHost *:80>
- DocumentRoot "/data/wwwroot/www.123.com"
- ServerName www.123.com
- ServerAlias 123.com
- <IfModule mod_rewrite.c> //须要mod_rewrite模块支持
- RewriteEngine on //打开rewrite功能
- RewriteCond %{HTTP_HOST} !^www.123.com$ //定义rewrite的条件,主机名(域名)不是www.123.com知足条件
- RewriteRule ^/(.*)$ http://www.123.com/$1 [R=301,L] //定义rewrite规则,当知足上面的条件时,这条规则才会执行 </IfModule>
- </VirtualHost>
- /usr/local/apache2/bin/apachectl -M|grep -i rewrite //若无该模块,须要编辑配置文件httpd.conf,删除rewrite_module (shared) 前面的#
- curl -x127.0.0.1:80 -I 123.com //状态码为301
实验:一ide



- 检查这个模块是否加载,没有加载的话,就编辑这个文件




3.Apache访问日志工具

示例一:测试
- 访问日志记录用户的每个请求
- vim /usr/local/apache2.4/conf/httpd.conf //搜索LogFormat
- LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 会记录referer和user-agent。
- LogFormat "%h %l %u %t \"%r\" %>s %b" common 简单记录日志
- 把虚拟主机配置文件改为以下:
- <VirtualHost *:80>
- DocumentRoot "/data/wwwroot/www.123.com"
- ServerName www.123.com
- ServerAlias 123.com
- CustomLog "logs/123.com-access_log" combined 定义为记录referer和user-agent格式的日志
- </VirtualHost>
- 从新加载配置文件 -t,graceful
- curl -x127.0.0.1:80 -I 123.com
- tail /usr/local/apache2.4/logs/123.com-access_log

