11月15日任务
11.18 Apache用户认证
11.19/11.20 域名跳转
11.21 Apache访问日志
1.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 //指定需要认证的用户为全部可用用户
- /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 /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //把123.com那个虚拟主机编辑成如下内容
- 生成密钥,-m 是指定加密类型,-c是创建
- 重新加载一下
- 访问一下,提示要用户认证
- -u 指定用户认证密码与用户
实验:二
还可以针对单个文件进行认证
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/www.123.com"
ServerName www.123.com
AllowOverride AuthConfig
AuthName "123.com user auth"
AuthType Basic
AuthUserFile /data/.htpasswd
require valid-user
配置更改一下
- 重新加载一下
- 编辑一下123.PHP文件
- 访问其他的不会401,访问123.php才会认证
2. 域名跳转
- 需求,把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规则,当满足上面的条件时,这条规则才会执行
- /usr/local/apache2/bin/apachectl -M|grep -i rewrite //若无该模块,需要编辑配置文件httpd.conf,删除rewrite_module (shared) 前面的#
- curl -x127.0.0.1:80 -I 123.com //状态码为301
实验:一
- 编辑一下配置
- 重新加载一下
- 检查这个模块是否加载,没有加载的话,就编辑这个文件
- /rewrite 搜索一下,取消#号,打开模块
- 重新加载一下这个模块
- 测试一下,301就表示是域名跳转的
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格式的日志
重新加载配置文件 -t,graceful
curl -x127.0.0.1:80 -I 123.com
tail /usr/local/apache2.4/logs/123.com-access_log
查看一下logs日志
- /LogFormat 搜索一下,日志的格式