Linux学习总结(三十四)lamp之用户认证和域名跳转

用户认证

为了某些网站的安全需要,特意授权特定用户访问,因此产生了网站访问的用户认证机制。我们可以针对某个站点进行认证,也可以指定某个目录,或者是一个文件。编辑虚拟主机配置文件:
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //把123.com那个虚拟主机编辑成如下内容

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/www.123.com"
    ServerName www.123.com
    ServerAlias 123.com
    <Directory /data/wwwroot/www.123.com> //指定认证的目录
        AllowOverride AuthConfig //这个相当于打开认证的开关
        AuthName "123.com user auth" //自定义认证的用户名
        AuthType Basic //认证的类型,一般为Basic
        AuthUserFile /data/.htpasswd  //指定密码文件所在位置
        require valid-user //指定需要认证的用户为全部可用用户
    </Directory>
</VirtualHost>

/usr/local/apache2.4/bin/htpasswd -cm /data/.htpasswd lv //指定用户,创建密码。
重新加载配置-t , graceful
绑定hosts,浏览器测试
curl -x127.0.0.1:80 123.com //状态码为401
curl -x127.0.0.1:80 -lv:lvlinux 123.com //状态码为200
如果要针对一个目录做认证,比如要对www.123.com/admin/目录做认证,只需要修改一个地方就可以。把<Directory /data/wwwroot/www.123.com>改为<Directory /data/wwwroot/www.123.com/admin/>. 如果要针对某个文件做认证,则要使用filematch功能,具体配置如下。

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/www.123.com"
    ServerName www.123.com
    ServerAlias 123.com
    <FilesMatch admin.php>
        AllowOverride AuthConfig
        AuthName "123.com user auth"
        AuthType Basic
        AuthUserFile /data/.htpasswd
        require valid-user
    </FilesMatch>
</VirtualHost>

域名跳转

我们知道我们在百度这种搜索引擎上访问某个域名,都会被爬虫记录,某个域名的访问量越大,越容易被搜索。比如有一个网站最开始注册的域名是A,后来我们又重新起了个比较好的域名B,要让B域名访问到该网站,我们只需要简单的给A域名做一个域名别名B就可以,但是这样爬虫记录的会是两个域名,因此我们的访问量被两个域名分摊了,那么我们如何在爬虫眼里增加我们A域名的权重呢?那就需要将B域名跳转到A域名。这样一来新用户记住了一个更有价值的域名,我们的访问量也集中到了一起。域名跳转也叫域名重定向。
需求,把123.com域名跳转到www.123.com,配置如下:

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/www.123.com"
    ServerName www.123.com
    ServerAlias 123.com
    <IfModule mod_rewrite.c> //需要mod_rewrite模块支持
        RewriteEngine on  //打开rewrite功能
        RewriteCond %{HTTP_HOST} !^www.123.com$  //定义rewrite的条件,主机名(域名)不是www.123.com满足条件
        RewriteRule ^/(.*)$ http://www.123.com/$1 [R=301,L] //定义rewrite规则,当满足上面的条件时,这条规则才会执行
</IfModule>
</VirtualHost> 

上面的rewrite 配置意思是,当使用域名别名访问过来时,我们自动跳转到服务器域名。用curl访问会看到我们定义的状态码301,如果用浏览器访问会发现ip将自动跳转。
/usr/local/apache2/bin/apachectl -M|grep -i rewrite //若无该模块,需要编辑配置文件httpd.conf,删除rewrite_module (shared) 前面的#
curl -x127.0.0.1:80 -I 123.com //状态码为301

访问日志

访问日志记录用户的每一个请求
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 格式更丰富一些,他多了referer 和 user-agent,我们将编辑虚拟主机配置文件,将common更改为combined ,重新访问测试,查看日志。
把虚拟主机配置文件改成如下:

 <VirtualHost *:80>
    DocumentRoot "/data/wwwroot/www.123.com"
    ServerName www.123.com
    ServerAlias 123.com
    CustomLog "logs/123.com-access_log" combined
</VirtualHost>

重新加载配置文件 -t,graceful
curl -x127.0.0.1:80 -I 123.com
tail /usr/local/apache2.4/logs/123.com-access_log

原文地址:http://blog.51cto.com/12606610/2103646

时间: 2024-10-08 19:35:02

Linux学习总结(三十四)lamp之用户认证和域名跳转的相关文章

【Unity 3D】学习笔记三十四:游戏元素——常用编辑器组件

常用编辑器组件 unity的特色之一就是编辑器可视化,很多常用的功能都可以在编辑器中完成.常用的编辑器可分为两种:原有组件和拓展组件.原有组件是编辑器原生的一些功能,拓展组件是编辑器智商通过脚本拓展的新功能. 摄像机 摄像机是unity最为核心组件之一,游戏界面中显示的一切内容都得需要摄像机来照射才能显示.摄像机组件的参数如下: clear flags:背景显示内容,默认的是skybox.前提是必须在render settings 中设置天空盒子材质. background:背景显示颜色,如果没

linux学习笔记-第二十四课-LNMP-Nginx高级配置(三)

一.用户认证 用户认证功能是利用Apache的工具htpasswd生成的密钥,所以需要安装Apache的这个工具即可,我们用yum来安装就可以. [[email protected] ~]# yum install -y httpd-tools [[email protected] ~]# htpasswd -cm /usr/local/nginx/conf/.htpasswd mydiscuz New password: Re-type new password: Adding passwor

LAMP+LNMP(六)用户认证、域名跳转与访问日志

一.用户认证有的网站需要加密特定的网页,这是我们可以给网页设置成输入用户名和密码才能访问,那么具体的设置是 1.修改/usr/local/apache2.4/conf/extra/httpd-vhosts.conf文件我们先看下模板<VirtualHost *:80>DocumentRoot "/data/wwwroot/www.123.com"ServerName www.123.com<Directory /data/wwwroot/www.123.com>

四十一、Apache用户认证、域名跳转、Apache访问日志

一.Apache用户认证 功能是用户在访问网站时,需要输入用户名和密码才能进入网站.一些重要站点或网站后台通常加用户认证,目的是保证安全. # vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf <VirtualHost *:80> DocumentRoot "/data/wwwroot/111.com" ServerName 111.com ServerAlias www.example.com <Direct

linux学习笔记-第十四课-日常管理(一)

一.w和uptime [[email protected] ~]# w  20:29:01 up 28 min,  1 user,  load average: 0.00, 0.00, 0.00 USER     TTY      FROM              [email protected]   IDLE   JCPU   PCPU WHAT mylinux  pts/0    192.168.1.105    20:12    0.00s  0.32s  0.26s sshd: my

Linux学习笔记(十四)--命令学习(vi的基本使用)

本博客中linux大部分内容是参考:鸟哥的私房菜     如各位有需要的,请参考:http://vbird.dic.ksu.edu.tw/linux_basic/linux_basic.php 上面我们已经知道了大部分Linux基本内容 1.查看系统信息 2.文件与目录查看 3.文件创建 4.文件权限属性 5.用户创建与删除 6.压缩包的打包与解包 现在要进行文件编辑等操作的学习. Linux 中,绝大部分的配置文件都是以 ASCII 的纯文本形态存在,因此利用简单的文字编辑软件就能够修改设定了

Linux学习笔记(十四)df命令、du命令、磁盘分区

一.df #查看文件系统的使用情况第一列文件系统中tmpfs结尾的都是临时的文件系统,文件单位默认为kb df -h 自动适应文件大小的单位free可以查看swap的使用情况 df -i 查看各个分区inode的使用情况有的时候明明磁盘的内存还有剩余,但是却无法写入新文件,这时候就可能是inode用完了. 二.du 查看文件大小 du -sh 自动适应单位显示文件或文件夹大小 du不加后缀的时候和du -l 一样,显示文件夹下文件的大小 du -lh 自动适应单位显示文件夹下文件的大小 三.磁盘

javaweb学习总结(三十四)——使用JDBC处理MySQL大数据

一.基本概念 大数据也称之为LOB(Large Objects),LOB又分为:clob和blob,clob用于存储大文本,blob用于存储二进制数据,例如图像.声音.二进制文等. 在实际开发中,有时是需要用程序把大文本或二进制数据直接保存到数据库中进行储存的. 对MySQL而言只有blob,而没有clob,mysql存储大文本采用的是Text,Text和blob分别又分为: TINYTEXT.TEXT.MEDIUMTEXT和LONGTEXT TINYBLOB.BLOB.MEDIUMBLOB和L

JAVA学习第三十四课(常用对象API)- 集合框架(二)—List集合及其子类特点

整个集合框架中最常用的就是List(列表)和Set(集) 一.List集合 && Set的特点 Collection的子接口: 1.List:有序(存入和取出的顺序一致),元素都有索引且可以重复    API文档解释:有序的 collection(也称为序列).此接口的用户可以对列表中每个元素的插入位置进行精确地控制.用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素. 2.Set:元素不能重复,无序,有可能会有序    API文档解释:一个不包含重复元素的 coll