一、apache用户认证
用户认证就是打开一个网站。会让你输入用户名和密码。对了才会让你访问HTTP,
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
编辑内容如下
<Directory /data/wwwroot/www.123.com> //指定认证的目录
AllowOverride AuthConfig //这个相当于打开认证的开关
AuthName "123.com user auth" //自定义认证的名字,作用不大
AuthType Basic //认证的类型,一般为Basic,其他类型阿铭没用过
AuthUserFile /data/.htpasswd //指定密码文件所在位置
require valid-user //指定需要认证的用户为全部可用用户
</Directory>
/usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd lty 使用apache的内置文件生成htpasswd -c 创建 -m mk5加密
[root@localhost ~]# /usr/local/apache2.4/bin/apachectl -t 检查语法错误
Syntax OK
[root@localhost ~]# /usr/local/apache2.4/bin/apachectl graceful 重新加载配置文件
[root@localhost ~]# curl -x127.0.0.1:80 111.com -I
HTTP/1.1 401 Unauthorized
Date: Mon, 20 Nov 2017 06:31:55 GMT
Server: Apache/2.4.28 (Unix) PHP/5.6.30
WWW-Authenticate: Basic realm="111.com user auth"
Content-Type: text/html; charset=iso-8859-1
[root@localhost ~]# curl -x127.0.0.1:80 111.com -I
HTTP/1.1 401 Unauthorized (401说明要做用户验证)
Date: Mon, 20 Nov 2017 06:32:01 GMT
Server: Apache/2.4.28 (Unix) PHP/5.6.30
WWW-Authenticate: Basic realm="111.com user auth"
Content-Type: text/html; charset=iso-8859-1
用浏览器访问发现需要做用户认证
也可以对单个文件做用户认证
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
编辑如下:
#<Directory /data/wwwroot/111.com>
<FilesMatch 111.php>
~
~
~
</FilesMatch>
#</Directory>
[root@localhost ~]# /usr/local/apache2.4/bin/apachectl -t 检查语法错误
Syntax OK
[root@localhost ~]# /usr/local/apache2.4/bin/apachectl graceful 重新加载配置文件
[root@localhost ~]# curl -x127.0.0.1:80 111.com/111.php -I
HTTP/1.1 401 Unauthorized
Date: Mon, 20 Nov 2017 06:49:16 GMT
Server: Apache/2.4.28 (Unix) PHP/5.6.30
WWW-Authenticate: Basic realm="111.com user auth"
Content-Type: text/html; charset=iso-8859-1
二、域名重定向
域名跳转,也叫域名重定向
[root@localhost ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<IfModule mod_rewrite.c> //需要mod_rewrite模块支持
RewriteEngine on //打开rewrite功能
RewriteCond %{HTTP_HOST} !^111.com$ //定义rewrite的条件,主机名(域名)不是111.com满足条件
RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L] //定义rewrite规则,当满足上面的条件时,这条规则才会执行,301表示永久跳转,临时 跳转302,L表示跳转一次
</IfModule>
查看有没有加载模块rewrite.so
[root@localhost ~]# /usr/local/apache2.4/bin/apachectl -M |grep rewrite
如果没有,修改httpd配置文件
149 #LoadModule rewrite_module modules/mod_rewrite.so 去掉#号
[root@localhost ~]# curl -x127.0.0.1:80 2111.com.cn -I
HTTP/1.1 301 Moved Permanently (状态为301,永久跳转)
Date: Mon, 20 Nov 2017 08:05:07 GMT
Server: Apache/2.4.28 (Unix) PHP/5.6.30
Location: http://111.com/
Content-Type: text/html; charset=iso-8859-1
三、apache访问日志
访问日志:会记录用户的每一个请求
cat /logs/
默认的日志格式:
来源的ip.时间,行为,访问域名,httpd版本,状态码,大小
修改日志格式;
vim /usr/local/apache/conf/httpd.conf
搜索/LogFormat 就是日志的格式
283 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
284 LogFormat "%h %l %u %t \"%r\" %>s %b" common 默认日志格式
{User-Agent}用户代理:通过浏览器或者curl访问,最终获得网站内容,浏览器就是用户代理,
{Referer} 记录浏览器上一次所访问的网址是什么
vim /usr/local/apache/conf/extra/httpd-vhosts.conf
CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/111.com-access%Y%m%d.log 86400"
combined (把访问日志这一行之前的common 改为combined)