apache用户认证-域名跳转-apache访问日志

apache用户认证:

1.编辑虚拟主机配置文件:vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/111.com"
    ServerName 111.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
        #设定需要认证的用户为“AuthUserFile”中定义的所有可用用户
     </Directory>
    ErrorLog "logs/111.com-error_log"
    CustomLog "logs/111.com-access_log" common
</VirtualHost>

 

2.创建“httpd-vhosts.conf”中指定的密码文件:/usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd zjy

#在“/data/.htpasswd”为用户zjy(自动创建)创建一个使用MD5算法加密的密码文件;-c创建,第一次创建才用;-mMD5算法

 

3.重新加载配置:

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

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

 

4.测试: curl -x192.168.8.131:80 111.com -I

[root@adailinux ~]# curl -x192.168.8.131:80 111.com -I
HTTP/1.1 401 Unauthorized
Date: Mon, 31 Jul 2017 01:42:50 GMT
Server: Apache/2.4.27 (Unix) PHP/5.6.30
WWW-Authenticate: Basic realm="111.com user auth"
Content-Type: text/html; charset=iso-8859-1

提示状态码为401,表示当前访问的内容需要进行用户认证。

 

curl -x192.168.8.131:80 -uzjy:123456 111.com -I                   #加-u[用户名]:[密码] 进行使用用户密码登录

[root@adailinux ~]# curl -x192.168.8.131:80 -uzjy:123456 111.com -I
HTTP/1.1 200 OK
Date: Mon, 31 Jul 2017 02:18:21 GMT
Server: Apache/2.4.27 (Unix) PHP/5.6.30
X-Powered-By: PHP/5.6.30
Content-Type: text/html; charset=UTF-8

提示状态码200,即访问成功

 

 

针对单个文件进行认证

1.编辑配置文件:/usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/111.com"
    ServerName 111.com
    ServerAlias www.example.com
    #<Directory /data/wwwroot/111.com>
    <FilesMatch 123.php>
        Allowoverride AuthConfig
        AuthName "111.com user auth"
        AuthType Basic
        AuthUserFile /data/.htpasswd
        require valid-user
     </FilesMatch>
     #</Directory>
    ErrorLog "logs/111.com-error_log"
    CustomLog "logs/111.com-access_log" common
</VirtualHost>

   说明: 注释掉< Directory >,取消对目录设定的用户认证,更改为< FilesMatch>,即对文件设定用户认证。

 

 

域名跳转

种类:301表示永久跳转;302表示临时跳转。
区别:

使用效果不同:

                  301重定向是永久的重定向,搜索引擎在抓取新内容的同时也将旧的网址替换为重定向之后的网址。

                  302跳转是暂时的跳转,搜索引擎会抓取新的内容而保留旧的网址。因为服务器返回302代码,搜索引擎认为新的网址只是暂时的。

 

域名跳转配置

1.修改虚拟主机配置文件:/usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/111.com"
    ServerName 111.com
    ServerAlias www.example.com
    <IfModule mod_rewrite.c>
    #需要mod_rewrite的支持
        RewriteEngine on
        #开启rewrite功能
        RewriteCond %{HTTP_HOST} !^111.com$
        #Cond=condition,定义rewrite条件:所有非111.com的主机名(域名)
        RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L]
        #定义rewrite规则:当满足上面条件时才执行当前规则,即跳转到111.com。
    </IfModule>
    ErrorLog "logs/111.com-error_log"
    CustomLog "logs/111.com-access_log" common
</VirtualHost>

 

2.重新加载配置文件并检查是否加载rewrite模块:

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

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

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

若没有加载,则执行以下:

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

搜rewrite,将“#”号去掉

 

3.测试:curl -x192.168.8.131:80 www.example.com -I

[root@adailinux ~]# curl -x192.168.8.131:80 www.example.com -I
HTTP/1.1 301 Moved Permanently
Date: Mon, 31 Jul 2017 07:17:37 GMT
Server: Apache/2.4.27 (Unix) PHP/5.6.30
Location: http://111.com/
Content-Type: text/html; charset=iso-8859-1

状态码为301,即设定了域名永久跳转。用浏览器访问“www.example.com”会直接跳转到“111.com”。

 

apache访问日志

日志路径:/usr/local/apache2.4/logs

自带日志格式:在主配置文件中有定义

    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common

#h表示host来源IP,l表示login用户,u表示user用户密码,t表示time时间,r表示request(行为),s表示status状态码,b表示byte大小 #user-agent:用户代理 #referer:跳转到当前位置的上一个网址(即:提供当前IP的网站)

有combine和common两种格式,默认使用common模式。

 

配置日志格式:

1.更改虚拟主机配置文件:/usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/111.com"
    ServerName 111.com
    ServerAlias www.example.com
    <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{HTTP_HOST} !^111.com$
        RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L]
    </IfModule>
    ErrorLog "logs/111.com-error_log"
    CustomLog "logs/111.com-access_log" combined
</VirtualHost>

将日志文件后面原有 common改为combined.

 

2.重新加载配置:

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

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


 

 

 

转载于:https://my.oschina.net/u/3866910/blog/1921669

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值