LAMP架构(五)

一  Apache用户认证

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

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

1、在虚拟主机配置文件中加入以下内容;

<Directory /data/wwwroot/www.123.com>

    AllowOverride AuthConfig

    AuthName "123.com user auth"

    AuthType Basic

    AuthUserFile /data/.htpasswd

    require valid-user

</Directory>

114558_Ygcy_3746774.png

2、生成密码文件

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

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

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

115432_EQZF_3746774.png

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

我们再创建一个用户

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

此时命令中不需要-c创建的选项,可以看到密码文件中新增了用户lj的加密后的密码

120116_cKeZ_3746774.png

3、重新加载配置

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

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

4、绑定主机

    # curl -x127.0.0.1:80 111.com

121855_IW3x_3746774.png

上图可以看到,此时提示401错误

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

122128_31Dk_3746774.png

上图可以看到401提示需要做用户验证,

同样的我们在浏览器打开的界面如下图:

122543_IIHH_3746774.png

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

    122817_zXjE_3746774.png

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

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

1、需要加入的内容如下:

<FilesMatch admin.php>

    AllowOverride AuthConfig

    AuthName "123.com user auth"

    AuthType Basic

    AuthUserFile /data/.htpasswd

    require valid-user

</FilesMatch>

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

125741_xW6C_3746774.png

2、重新加载配置

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

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

4、访问主机及123.php

    新增文件123.php

130405_8qnu_3746774.png

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

130327_NpLp_3746774.png

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

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

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

130520_V6dZ_3746774.png

这时就需要进行用户密码验证,如下

130624_Ci05_3746774.png

二 域名跳转

也叫域名重定向

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

    我们要做的就是配置301跳转

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

加入以下内容:

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

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

2、重新加载配置文件

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

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

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

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

 如果没有加载,就需要手动去配置文件中加载

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

    搜索rewrite

    去掉此行行首的#号

153341_96Kz_3746774.png

再次检查rewrite模块是否加载

153744_3cKQ_3746774.png

上图表示加载成功

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

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

161041_vyyH_3746774.png

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

163358_6wJE_3746774.png

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

163600_7NEs_3746774.png

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

170241_9UoD_3746774.png

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

170324_6T6i_3746774.png

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

三 Apache访问日志

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

172957_4cFD_3746774.png

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

173142_Li0U_3746774.png

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

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

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

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

175205_4CrV_3746774.png

h : 来源IP

l:用户

u:用户

t: 时间

r:状态码

b:大小

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

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

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

修改前:

184021_ryf9_3746774.png

修改后:

184141_Hg4I_3746774.png

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

184327_p1B7_3746774.png

多访问几次后,我们再来查看日志

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

185147_6yE6_3746774.png

 

推荐链接

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

 

转载于:https://my.oschina.net/u/3746774/blog/1627723

本文主要总结了在Ubuntu10下常用Java Web应用软件的安装,特别是LNMJ Web(Linux+Nginx+Mysql+Java Tomcat)架构LAMJ Web(Linux+Apache+Mysql+Java Tomcat)架构下的软件安装。为进一步配置和实现LNMJ和LAMJ架构(负载均衡与集中式Memcached集群)进行前期准备。本文记录了安装过程经常出现的错误,并提供了解决办法,具有很好的实用性,是居家旅行必备之良品。 主要内容有: VirtualBox4.0的安装和配置 包括VirtualBox下网络环境的配置,和主机文件的共享,主机和虚拟机剪贴板共享等内容。 http://peterwei.javaeye.com/blog/968815 Ubuntu10下JDK1.6安装 http://peterwei.javaeye.com/blog/968758 Ubuntu10下Tomcat7安装 http://peterwei.javaeye.com/blog/968774 Ubuntu10下Eclipse3.6安装 http://peterwei.javaeye.com/blog/975129 Ubuntu10下Nginx-0.8.54安装 http://peterwei.javaeye.com/blog/969991 Ubuntu10下Apache-2.2安装 http://peterwei.javaeye.com/blog/975122 Ubuntu10下Mysql-5.1.56安装 http://peterwei.javaeye.com/blog/976422 Ubuntu10下Memcached-1.4.5安装 http://peterwei.javaeye.com/blog/974445 Ubuntu10下SSH2协议安装 http://peterwei.javaeye.com/blog/976944 Ubuntu10下Subversion安装 http://peterwei.javaeye.com/blog/976916 Ubuntu10下中文输入法安装 http://peterwei.javaeye.com/blog/976908 Ubuntu Linux实用命令 http://peterwei.javaeye.com/blog/976950 当然,最后也提供了PDF格式的附件统一下载,方便大家查看。下载后觉得不错的,不要吝啬你的掌声。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值