11.18 Apache用户认证 11.19/11.20 域名跳转 11.21 Apache访问日志

11.18 Apache用户认证

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>    

DocumentRoot "/data/wwwroot/111.com";    

ServerName111.com

ServerAlias www.example.com

<Directory /data/wwwroot/111.com>    //指定认证的目录 

AllowOverride AuthConfig       //这个相当于打开认证的开关 

AuthName "111.com user auth"    //自定义认证的名字,作用不大     

AuthType Basic     //认证的类型,一般为Basic  

AuthUserFile /data/.htpasswd        //指定密码文件所在位置      

require valid-user     //指定需要认证的用户为全部可用用户

</Directory>

</VirtualHost> 

/usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd -c nan

(注:htpasswd命令是Apache的Web服务器内置工具,用于创建和更新储存用户名、域和用户基本认证的密码文件。)

cat /data/.htpasswd

重新加载配置-t , graceful 

[root@localhost ~]# /usr/local/apache2.4/bin/apachectl -t

Syntax OK

[root@localhost ~]# /usr/local/apache2.4/bin/apachectl graceful

windows绑定hosts,浏览器测试 

curl -x127.0.0.1:80 111.com        //状态码为401

curl -x192.168.174.128:80 111.com

curl -x127.0.0.1:80 -unan:123123 111.com //状态码为200

还可以针对单个文件进行认证

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>    

DocumentRoot "/data/wwwroot/111.com"

ServerName 111.com

<FilesMatch 123.php>        

AllowOverride AuthConfig        

AuthName "111.com user auth"        

AuthType Basic        

AuthUserFile /data/.htpasswd        

require valid-user    

</FilesMatch>

</VirtualHost>

把<Directory /data/wwwroot/111.com>注释掉  加上<FilesMatch 123.php> 

重新加载配置-t , graceful 

vim /data/wwwroot/111.com/123.php

<?php

echo "123.php";

?>

curl -x192.168.174.128:80 111.com

curl -x192.168.174.128:80 111.com/123.php

11.19/11.20 域名跳转

需求把2111.com域名跳转到111.com,配置如下:

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

注释掉<Directory>模块

添加以下内容

<VirtualHost *:80>

         DocumentRoot “/data/wwwroot/111.com

         ServerName 111.com

ServerAlias www.example.com2111.com.cn

<IfModule mod_rewrite.c>    //需要mod_rewrite模块支持

RewriteEngine on       //打开rewrite功能

RewriteCond %{HTTP_HOST} !^111.com$  

 #定义rewrite的条件,主机名(域名)不是www.123.com满足条件     

RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L]

#定义rewrite规则,当满足上面的条件时,这条规则才会执行

</IfModule>

</VirtualHost>

 

 /usr/local/apache2.4/bin/apachectl -M|grep -i rewrite 

//若无该模块,需要编辑配置文件httpd.conf,删除rewrite_module (shared) 前面的#

vi /usr/local/apache2.4/conf/httpd.conf  搜rewrite  删除前面的#

改完配置文件,先检测-t ,再加载graceful

/usr/local/apache2.4/bin/apachectl -t

/usr/local/apache2.4/bin/apachectl graceful

curl -x127.0.0.1:80 -I 111.com //状态码为301  (301永久重定向,302临时)

curl -x127.0.0.1:80 111.com

curl -x127.0.0.1:80 http://111.com/123.php -I

 curl -x127.0.0.1:80 www.example.com

C:\Windows\System32\drivers\etc   hosts  记得配置

vim /usr/local/apache2.4/conf/httpd.conf

curl -x192.168.174.128:80 111.com/123.php -I

11.21 Apache访问日志

访问日志记录用户的每一个请求

vim /usr/local/apache2.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改成combined

combined 可以显示更多的信息

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>

ErrorLog "logs/111.com-error_log"    

CustomLog "logs/111.com-access_log" combined

</VirtualHost>

 重新加载配置文件 -t,graceful

 curl -x127.0.0.1:80 -I 111.com/123.php

 tail /usr/local/apache2.4/logs/111.com-access_log

扩展 

apache虚拟主机开启php的短标签 http://ask.apelearn.com/question/5370

猜你喜欢

转载自my.oschina.net/u/3716831/blog/1628077