Apache用户认证、域名跳转、Apache访问日志
5月29日任务
课程内容:
11.18 Apache用户认证
11.19/11.20 域名跳转
11.21 Apache访问日志
扩展
apache虚拟主机开启php的短标签 http://ask.apelearn.com/question/5370
11.18 Apache用户认证
用户认证的目的是增加安全性,不好的地方就是用户体验不好,每个人访问网站时还需要输入密码,但是需求是无处不在的,需求的类型也是多种多样的。
实例操作步骤如下:
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //把第二个虚拟主机编辑成如下内容


/usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd jimmy 使用命令方式生成密码文件

cat /data/.htpasswd 查看密码文件,以冒号分隔左边是用户名,右边是MD5加密的密码。


做完上面的操作后,重新加载配置文件 /usr/local/apache2.4/bin/apachectl graceful
然后使用curl命令

在Windows的hosts文件中添加111.com,然后到IE访问111.com就会提示输入用户名和密码的验证窗口。


输入正确的用户名和密码登录就可以看到访问页面的内容了

[root@jimmylinux-002 ~]# curl -x127.0.0.1:80 -ujimmy:abcd1234 111.com -I 也可以使用curl命令方式输入用户名和密码,如果验证通过会显示200代码。

还可以针对单个文件进行认证,比如对后台admin账号登录时进行认证。修改vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf 配置文件,修改内容如下。

/usr/local/apache2.4/bin/apachectl graceful 重新加载配置文件,如果以下错误,是因为配置文件中FilesMatch前面少了/


然后编辑一个admin.php的文件

这个时候直接输入命令curl -x127.0.0.1:80 111.com -I 也可以访问。

curl -x127.0.0.1:80 111.com/admin.php -I 访问这个同样是会报401错误的,是因为针对admin.php做了一个限制。

这个时候再加上用户名和密码就正常了

同样也可以在IE浏览器进行访问,会提示输入用户名和密码进行认证。

以上所有的操作就是用户认证方式,当你的网站有某些文件不需要别人访问查看时候,就可以通过用户认证的方式进行限制。
11.19/11.20 域名跳转

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf 修改虚拟主机配置文件,可以把不用的内容加#注释掉。

在Windows的hosts文件中也需要加上 www.example.com

改完配置文件后需要重新加载 /usr/local/apache2.4/bin/apachectl graceful
在测试之前先检查下Apache是不是加载了rewrite模块,如果没有加载,需要打开,因为在编译的时候指定了modules,所以这个模块是一定存在的。
[root@jimmylinux-002 ~]# /usr/local/apache2.4/bin/apachectl -M |grep rewrite
[root@jimmylinux-002 ~]# vi /usr/local/apache2.4/conf/httpd.conf 把rewrite这行的#取消掉


现在进行测试看看是否能够正常使用,因为80监听的是全网,所以无论使用哪个IP都可以。
[root@jimmylinux-002 ~]# curl -x192.168.52.129:80 2111.com.cn -I (大写I表示只查看状态码,不显示内容)

可以看到上面的结果说明跳转成功
状态码解释:
301 永久重定向
302 临时重定向
404 文件不存在
401 用户认证失败
200 用户认证成功
11.21 Apache访问日志
日志文件存放在这个路径 ls /usr/local/apache2.4/logs/

cat /usr/local/apache2.4/logs/111.com-access_log 可以通过cat查看log

左边为来源IP地址,后面是访问时间,HEAD是通过curl命令访问的记录,GET是不加-I时候的内容。
vim /usr/local/apache2.4/conf/httpd.conf 可以通过修改主配置文件定义log

LogFormat就是日志的格式,有combined和common2种,我们默认使用的就是common,刚才看到的日志就是通过common这里面的变量定义的。
combined这种格式除了能够显示common的外,还可以显示Referer,显示User-Agent,什么叫Referer,User-Agent,User-Agent就是用户代理,作为一个用户,我想访问网站的内容,是需要通过浏览器或者curl方式去访问。
Referer是浏览器上一次所访问的URL网址,例如从百度主页去访问百度新闻,那么当访问到百度新闻时,记录的URL网址其实是百度主页,这个就是记录的Referer。
下面我们使用combined方式修改虚拟主机配置文件来定义日志
/usr/local/apache2.4/conf/extra/httpd-vhosts.conf

修改完以后重新加载配置文件 /usr/local/apache2.4/bin/apachectl graceful 在执行curl命令检查是否正常

在使用IE浏览器访问 http://111.com/admin.php 然后去查看下日志,最下面新生成的内容就会比common方式记录的丰富的多。
[root@jimmylinux-002 ~]# cat /usr/local/apache2.4/logs/111.com-access_log

在猿课论坛发一个测试帖子,然后在通过论坛点开111.com/admin.php 去访问,这样在日志里面就可以记录到 Referer 了。

Apache用户认证、域名跳转、Apache访问日志的更多相关文章
- apache用户认证 域名跳转 Apache访问日志
- Linux CentOS7 VMware LAMP架构Apache用户认证、域名跳转、Apache访问日志
一.Apache用户认证 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //把111.com那个虚拟主机编辑成如下内容 <Virtu ...
- apache用户认证、默认主机、301跳转
我更正论坛一个同学帖子(今天坑我一下午):原文http://www.apelearn.com/bbs/foru ... 3%BB%A7%C8%CF%D6%A4 apache用户认证.默认主机.301跳 ...
- apache用户认证访问机制(转)
Apache服务器已经内置用户验证机制,大家只要适当的加以设置,便可以控制网站的某些部分要用户验证.前期准备,必须已经安装apache,如果还没安装,或者对安装很模糊的话,第1步:我们在/var/ww ...
- APACHE两种域名跳转法简单完成重定向
当我们变更网站域名,或者申请多个域名指向一个网站的时候,这个时候我们就会用到域名跳转(或者叫域名重定向redirect.域名转向).下面用最简单的文字讲两种apache的域名跳转方法. 假设我们想把w ...
- apache用户认证、域名跳转、Apache访问日志(两种格式)
1.apache 设置,用户访问时 目录或文件的认证: 对目录的认证: <Directory /var/www/222> //指定认证的目录AllowOverride AuthConfig ...
- apache用户认证,ssl双向认证配置
安装环境: OS:contos 6.4 httpd:httpd-2.2.15-59.el6.centos.i686.rpm openssl:openssl-1.0.1e-57.el6.i686.rpm ...
- apache用户认证
创建一个目录abc:mkdir abc在此目录下建一个文件:12.txt正常情况下可以访问. 建立用户认证,从而使用户访问特定目录文件需要认证 在虚拟主机配置文件中即vim /usr/local/ap ...
- Apache 用户认证
基本认证(Basic) 摘要认证(Digest) 更安全 创建一个名为 users 的认证口令: htpasswd -c /usr/local/apache2/conf/users sam ...
随机推荐
- [Usaco 2012 Feb]Cow coupons牛券:反悔型贪心
Description Farmer John needs new cows! There are N cows for sale (1 <= N <= 50,000), ...
- NOIP模拟 2
大概就是考试的时候慌的一批,因为一道正解也没想出来,T1,T3只会暴搜,听见天皇在旁边的窃喜声本渣内心是崩溃的 会打暴搜的我先打了暴搜,大多数时间都用在第二题上,妄想自己能拿50多分- 最后半小时万念 ...
- 测试工程师,选择python还是java?
问:“你平时工作中,用java多还是用python多”? 答:“都还可以,根据具体的场景选择不同的语言”. 问:“比如说呢”? 答:“开发自己的测试平台,肯定会选择java:在centos服务器跑一些 ...
- Python基本数据结构之集合
一道python面试的一个小问题,说怎么使用一行代码将一个列表里的重复元素,其实这里只要将列表转换成集合就可以了. 定义 集合跟我们学的列表有点像,也是可以存一堆数据,不过它有几个独特的特点,令其在整 ...
- java应用性能调优之详解System的gc垃圾回收方法
一.什么是System.gc()? System.gc()是用Java,C#和许多其他流行的高级编程语言提供的API.当它被调用时,它将尽最大努力从内存中清除垃圾(即未被引用的对象).名词解释:GC, ...
- 「Luogu 3792」由乃与大母神原型和偶像崇拜
更好的阅读体验 Portal Portal1: Luogu Description 给你一个序列\(a\) 每次两个操作: 修改\(x\)位置的值为\(y\): 查询区间\([l, r]\)是否可以重 ...
- inline-block元素间隙产生及去除方法
当我们把元素属性display设置成inline-block时,元素之间就会产生间隙 <!DOCTYPE html><html> <head> <meta c ...
- PHP Swoole长连接常见问题
连接失效问题例子其中,Redis常见的报错就是: 配置项:timeout报错信息:Error while reading line from the serverRedis可以配置如果客户端经过多少秒 ...
- [笔记]IDEA使用笔记
1.IDEA的目录结构 2.所有的源文件都必须写在src文件夹下, 3.输入psvm再按回车,就会生成主函数: 4.输入sout就会生成输出语句的格式: 5.ALT+4 调出上次运行的结果出来看看 ...
- thinkphp 6.0 在 initialize 中重定向无效
thinkphp 6.0 在 initialize 中重定向无效 改用 header() 函数 实例: // header('location:/index.php/模块/控制器/方法'); head ...