LAMP架构(五)

一  Apache用户认证

此处用户认证的意思是:须要浏览器对用户进行认证,认证成功后用户才能浏览网站内容,php

使用场景1:对网站进行用户认证apache

一、在虚拟主机配置文件中加入如下内容;vim

<Directory /data/wwwroot/www.123.com>浏览器

    AllowOverride AuthConfigcurl

    AuthName "123.com user auth"ide

    AuthType Basic测试

    AuthUserFile /data/.htpasswd网站

    require valid-userui

</Directory>搜索引擎

二、生成密码文件

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

命令中的-c 表示建立,-m表示md5加密,/data/.htpasswd是密码文件所在路径,lijie是建立的用户名

    随后系统两次提示输入密码,运行结果以下:

上图能够看到密码文件中出现了一行字符串,冒号左边是用户名,右边就是md5加密后的密码

咱们再建立一个用户

    # /usr/local/apache2.4/bin/htpasswd  -m /data/.htpasswd lj

此时命令中不须要-c建立的选项,能够看到密码文件中新增了用户lj的加密后的密码

三、从新加载配置

    # /usr/local/apache2.4/bin/apachectl -t  //检查语法

    # /usr/local/apache2.4/bin/apachectl graceful  //从新加载

四、绑定主机

    # curl -x127.0.0.1:80 111.com

上图能够看到,此时提示401错误

咱们再来看下401是什么意思?

上图能够看到401提示须要作用户验证,

一样的咱们在浏览器打开的界面以下图:

出现上述现象输入用户名密码进行验证便可,Linux下用户名密码输入方式以下

    

上图输入用户名密码后能够看到状态码已经变成200 OK 表示认证成功

使用场景2:针对某个文件设置用户认证

一、须要加入的内容以下:

<FilesMatch admin.php>

    AllowOverride AuthConfig

    AuthName "123.com user auth"

    AuthType Basic

    AuthUserFile /data/.htpasswd

    require valid-user

</FilesMatch>

其中admin.php就是表示当匹配到这个文件时就须要作用户验证

二、从新加载配置

    # /usr/local/apache2.4/bin/apachectl -t  //检查语法

    # /usr/local/apache2.4/bin/apachectl graceful  //从新加载

四、访问主机及123.php

    新增文件123.php

      访问主机# curl -x127.0.0.1:80 111.com -I

上图咱们发现访问主机不须要验证用户名和密码就能成功登陆

可是当咱们访问网站下的123.php页面时就提示401错误,

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

这时就须要进行用户密码验证,以下

二 域名跳转

也叫域名重定向

使用场景:新旧域名的切换时,老用户的习惯保留,网站的SEO排名,若是有两个域名网站内容同样的话,搜索引擎会认为新的域名是冒牌货,而把较高的权重给旧域名,可是咱们想使用新域名的话,就须要作一个域名重定向跳转,而且给一个永久跳转的状态码301,这时搜索引擎就会认为旧域名不用了,而降下就域名的权重,将全部的权重给新域名

    咱们要作的就是配置301跳转

一、编辑虚拟主机配置文件

加入如下内容:

<IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{HTTP_HOST} !^111.COM$
        RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L]
</IfModule>

命令中301表示永久重定向,另外有一个状态码302表示临时重定向

二、从新加载配置文件

    # /usr/local/apache2.4/bin/apachectl -t  //检查语法

    # /usr/local/apache2.4/bin/apachectl graceful  //从新加载

三、检测apache是否加载重定向模块rewrite

    # /usr/local/apache2.4/bin/apachectl -M |grep rewrite  //检测是否加载

 若是没有加载,就须要手动去配置文件中加载

    # vi /usr/local/apache2.4/conf/httpd.conf  //编辑配置文件

    搜索rewrite

    去掉此行行首的#号

再次检查rewrite模块是否加载

上图表示加载成功

四、测试域名跳转是否成功

     测试域名跳转成功与否 1# curl -x192.168.31.157:80 www.111.com -I

    测试跳转URL 2# curl -x192.168.31.157:80 www.111.com 

    测试跳转URL 3# curl -x192.168.31.157:80 www.111.com/213fdsffg

上面 测试URL不存在,但调转是成功了的,只是咱们没有写这个页面而已,提示的状态码是404,以下

换一个已经写好的页面,则提示200 OK ,说明域名跳转成功

状态码403表示拒绝访问,当httpd配置文件中的Require all granted被修改成Require all denied时就会出现此状态提示

三 Apache访问日志

日志目录/usr/local/apache2.4/logs

查看域名跳转实验时候的logs以下

上图中以HEAD开头的表示是使用命令 curl 时留下的记录,以GET开头的表示的是加上-I时留下的记录

但这个日志格式比较简单,咱们能够先在主配置文件中查看下日志格式

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

    修改下图的LogFormat,框中引号内的参数,给咱们提供了common 和 combined两种格式,默认使用的是common格式,咱们在上图中看到的格式就是由下图引号内的参数决定的

h : 来源IP

l:用户

u:用户

t: 时间

r:状态码

b:大小

User Agent :用户代理,能够是浏览器作代理或者使用curl命令访问到网站,返回的内容是浏览器给的字段或curl相关给的字段

Referer:记录浏览器上一次访问的页面,表示用户是从哪一个页面跳转过来的

接下来咱们在虚拟主机配置文件中修改日志格式

修改前:

修改后:

修改为功后从新加载虚拟主机配置文件,再来访问这个主机:

多访问几回后,咱们再来查看日志

    # /usr/local/apache2.4/logs/111.com/access_log

 

推荐连接

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

相关文章
相关标签/搜索