Apache用户认证、域名跳转、Apache访问日志
–>
一、Apache设置用户认证
针对整个目录进行用户认证
1. 编辑配置文件
vim /usr/local/httpd2.4/conf/extra/httpd-vhosts.conf
2.在配置文件里添加如下段
3. 创建密码文件以及用户和密码
[[email protected] ~]# /usr/local/httpd2.4/bin/htpasswd -c -m /data/.htpasswd lx #使用工具htpassswd进行创建,-c为创建,-m为MD5加密,创建一个lx用户
New password: #输入密码
Re-type new password: #确认密码
Adding password for user lx #提示增加成功
[[email protected] ~]# cat /data/.htpasswd #可以使用cat查看一下,已经创建密码文件,有一个用户lx,密码是加密的
lx:$apr1$huJnficE$LHzem2jG/myQwj0T8Io5Q0
4.更改完成后不要忘记检查配置文件是否正确以及重新加载配置文件
[[email protected] ~]# /usr/local/httpd2.4/bin/apachectl -t
Syntax OK
[[email protected] ~]# /usr/local/httpd2.4/bin/apachectl graceful
5. 使用curl进行测试密码是否成功设置,-I只显示请求头信息,-u设置服务器的用户和密码
[[email protected] ~]# curl -x127.0.0.1:80 111.com -I #不输入密码进行访问,
HTTP/1.1 401 Unauthorized #提示401,401的意思为需要认证
Date: Fri, 02 Mar 2018 20:08:29 GMT
Server: Apache/2.4.29 (Unix) PHP/5.6.30
WWW-Authenticate: Basic realm=”111.com user auth”
Content-Type: text/html; charset=iso-8859-1
[[email protected] ~]# curl -x127.0.0.1:80 -uzhangsan:asdfg 111.com -I #-u指定用户和密码,输入用户张三,密码asdfg,
HTTP/1.1 200 OK #提示200,表示正常访问
Date: Fri, 02 Mar 2018 20:08:16 GMT
Server: Apache/2.4.29 (Unix) PHP/5.6.30
X-Powered-By: PHP/5.6.30
Content-Type: text/html; charset=UTF-8
针对单个的文件进行用户认证
1.编辑配置文件
vim /usr/local/httpd2.4/conf/extra/httpd-vhosts.conf
2.同样更改完成后记得检查配置文件是否正确以及重新加载配置文件
/usr/local/httpd2.4/bin/apachectl -t
/usr/local/httpd2.4/bin/apachectl graceful
3.在指定的目录下新建一个123.php进行测试
vim /data/wwwroot/111.com/123.php
添加如下内容
<?php
echo “123.php”; #内容可以随便写,主要是进行测试用
4.使用curl进行测试
[[email protected] ~]# curl -x127.0.0.1:80 111.com -I #当访问111.com的时候可以正常访问
HTTP/1.1 200 OK
Date: Fri, 02 Mar 2018 20:28:51 GMT
Server: Apache/2.4.29 (Unix) PHP/5.6.30
X-Powered-By: PHP/5.6.30
Content-Type: text/html; charset=UTF-8
[[email protected] ~]# curl -x127.0.0.1:80 111.com/123.php -I #当访问111.com下的123.php时候出现401
HTTP/1.1 401 Unauthorized
Date: Fri, 02 Mar 2018 20:31:44 GMT
Server: Apache/2.4.29 (Unix) PHP/5.6.30
WWW-Authenticate: Basic realm=”111.com user auth”
Content-Type: text/html; charset=iso-8859-1
[[email protected] ~]# curl -x127.0.0.1:80 -uzhangsan:asdfg 111.com/123.php -I #输入用户名和密码后可以正常访问
HTTP/1.1 200 OK
Date: Fri, 02 Mar 2018 20:32:03 GMT
Server: Apache/2.4.29 (Unix) PHP/5.6.30
X-Powered-By: PHP/5.6.30
Content-Type: text/html; charset=UTF-8
二、域名跳转
1. 编辑虚拟主机配置文件
vim /usr/local/httpd2.4/conf/extra/httpd-vhosts.conf
在配置文件里添加以下内容
<VirtualHost *:80>
DocumentRoot “/data/wwwroot/111.com”
ServerName 111.com
ServerAlias www.example.com
<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规则,当满足上面的条件时,这条规则才会执行,跳转至111.com,301表示永久跳转
</IfModule>
ErrorLog “logs/111.com-error_log”
CustomLog “logs/111.com-access_log” common
</VirtualHost
2.同样更改完成后记得检查配置文件是否正确以及是否加载rewrite模块
/usr/local/httpd2.4/bin/apachectl -t
/usr/local/httpd2.4/bin/apachectl -M |grep rewrite
3.如果没有加载rewrite模块,那么需要在配置文件里加载
vim /usr/local/httpd2.4/conf/httpd.conf
打开配置文件后搜索关键字:rewrite 找到如下行:
LoadModule rewrite_module modules/mod_rewrite.so 将这一行前面的#号去掉即可。
4. 使用curl进行测试
[[email protected] ~]# curl -x127.0.0.1:80 www.example.com -I #访问www.example.com
HTTP/1.1 301 Moved Permanently #显示301 Moved
Date: Fri, 02 Mar 2018 22:11:00 GMT
Server: Apache/2.4.29 (Unix) PHP/5.6.30
Location: http://111.com/ #成功跳转至111.com
Content-Type: text/html; charset=iso-8859-1
三、Apache访问日志
1.Apache日志的存放地址
[[email protected] ~]#
ls /usr/local/httpd2.4/logs/
111.com-access_log 123.com-access_log aaa.com-access_log access_log httpd.pid
111.com-error_log 123.com-error_log aaa.com-error_log error_lo
access_log为访问日志,记录所有对apache服务器进行请求的访问,它的位置和内容由CustomLog指令控制,LogFormat指令可以用来简化该日志的内容和格式
error_log为错误日志,记录下任何错误的处理请求,它的位置和内容由ErrorLog指令控制,通常服务器出现什么错误,首先对它进行查阅,是一个最重要的日志文件。
2.日志的格式
编辑Apache的主配置文件
vim /usr/local/httpd2.4/conf/httpd.conf
打开配置文件后搜索关键字:LogFormat ,找到如下两行:
LogFormat “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\””
combined
LogFormat “%h %l %u %t \”%r\” %>s %b”
common
默认的格式使用的是第二行common格式
3. 更改日志的格式
编辑配置文件
vim /usr/local/httpd2.4/conf/extra/httpd-vhosts.conf
打开配置文件后,找到CustomLog,将后面的common更改为combined
<VirtualHost *:80>
DocumentRoot “/data/wwwroot/aaa.com“
ServerName
aaa.com
ServerAlias
www.aaa.comwww.123.com
ErrorLog “logs/aaa.com-error_log”
CustomLog “logs/aaa.com-access_log”
common #将这里的common更改为combined即可
</VirtualHost>
本文来源 互联网收集,文章内容系作者个人观点,不代表 本站 对观点赞同或支持。如需转载,请注明文章来源,如您发现有涉嫌抄袭侵权的内容,请联系本站核实处理。