设为首页 收藏本站
查看: 759|回复: 0

[经验分享] Apache用户认证、域名跳转、访问日志格式

[复制链接]

尚未签到

发表于 2018-11-18 06:16:04 | 显示全部楼层 |阅读模式
11.18 Apache用户认证
  注意: 本章使用浏览器进行检测的前提是在物理机hosts文件添加虚拟机IP和虚拟主机域名。
配置用户认证
  编辑虚拟主机配置文件“httpd-vhosts.conf”。
[root@centos-01linux ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
……

DocumentRoot "/data/wwwroot/111.com"
ServerName 111.com
ServerAlias www.example.com

#指定认证的目录
Allowoverride AuthConfig
#该行相当于打开用户认证的开关
AuthName "111.com user auth"
#自定义认证的名字,作用不大
AuthType Basic
#认证类型,一般为basic
AuthUserFile /data/.htpasswd
#指定密码文件所在位置(需要手动添加)
require valid-user
#设定需要认证的用户为“AuthUserFile”中定义的所有可用用户

ErrorLog "logs/111.com-error_log"
CustomLog "logs/111.com-access_log" common

DSC0000.png

创建“httpd-vhosts.conf”中指定的密码文件
  [root@centos-01linux ~]# /usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd akai
New password:
Re-type new password:
Adding password for user akai
  [root@centos-01linux ~]# cat /data/.htpasswd
akai:$apr1$F7lSqIT0$hEgMT0Nhuxh6.BpmLvi57/
即,在“/data/.htpasswd”为用户akai(自动创建)创建一个使用MD5算法加密的密码文件。
注意: 只有在第一次创建该文件时加-c选项。
  配置完成后重新加载
[root@centos-01linux ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@centos-01linux ~]# /usr/local/apache2.4/bin/apachectl graceful
测试
[root@centos-01linux ~]# curl -x192.168.239.187: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”,说明当前所访问的内容需要进行用户认证。
  使用用户&密码访问:
DSC0001.png
  [root@centos-01linux ~]# curl -x192.168.239.187:80 -uakai: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”,即访问成功。
DSC0002.png

  htpasswd命令
  htpasswd命令是Apache的Web服务器内置工具,用于创建和更新储存用户名、域和用户基本认证的密码文件。
  语法: htpasswd [option] [参数]
Options:
-c:=create,创建一个加密文件
-n:不更新加密文件,只将更新后的用户名密码显示在屏幕上
-m:使用MD5算法对密码进行加密(默认)
-d:使用CRYPT算法对密码进行加密
-p:不对密码进行加密,即明文密码
-s:使用SHA算法对密码进行加密
-b:在命令行一并输入用户名和密码,而不是根据提示输入密码
-D:删除指定用户
  应用
对网站中指定文件设置用户认证!
  虚拟主机配置
[root@centos-01linux ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
  
DocumentRoot "/data/wwwroot/111.com"
ServerName 111.com
ServerAlias www.example.com
#

Allowoverride AuthConfig
AuthName "111.com user auth"
AuthType Basic
AuthUserFile /data/.htpasswd
require valid-user

#
ErrorLog "logs/111.com-error_log"
CustomLog "logs/111.com-access_log" common

说明: 注释掉< Directory >,取消对目录设定的用户认证,更改为< FilesMatch>,即对文件设定用户认证。
  检测
[root@centos-01linux ~]# curl -x192.168.8.131:80  111.com
welcome to 111.com
  [root@centos-01linux ~]# curl -x192.168.8.131:80  111.com/123.php -I
HTTP/1.1 401 Unauthorized
Date: Mon, 31 Jul 2017 03:04:31 GMT
Server: Apache/2.4.27 (Unix) PHP/5.6.30
WWW-Authenticate: Basic realm=&quot;111.com user auth&quot;
Content-Type: text/html; charset=iso-8859-1
说明: 此时可以自由访问“111.com”指定的目录,但是当访问目录下的“123.php”文件时会报错:401,即,需要进行用户认证。
  使用指定用户名&密码访问:
  [root@centos-01linux ~]# curl -x192.168.8.131:80  -uakai:123456 111.com/123.php
welcom to 123   
成功!
使用浏览器检测:
  访问&quot;111.com/123.php&quot;:
DSC0003.png

11.19-11.20 域名跳转
域名跳转分类及区别
  种类:
  301表示永久跳转;302表示临时跳转。
  区别:
  使用效果不同
302跳转是暂时的跳转,搜索引擎会抓取新的内容而保留旧的网址。因为服务器返回302代码,搜索引擎认为新的网址只是暂时的。
301重定向是永久的重定向,搜索引擎在抓取新内容的同时也将旧的网址替换为重定向之后的网址。
SEO使用方式不同
在搜索引擎优化中302跳转被众多黑帽SEO优化人员追求,对网站进行恶意302跳转至非用户目标访问网站,因此搜索引擎对于网站的302跳转通常是比较不友好,所以要慎用302跳转!
SEO
  SEO(Search Engine Optimization)搜索引擎优化,在了解搜索引擎自然排名机制的基础上,对网站进行内部及外部的调整优化,改进网站在搜索引擎中的关键词自然排名,获得更多流量,从而达成网站销售及品牌建设的预期目标。
域名跳转配置
  配置虚拟主机配置文件:httpd-vhosts.conf。
[root@centos-01linux ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
……

DocumentRoot &quot;/data/wwwroot/111.com&quot;
ServerName 111.com
ServerAlias www.example.com

#需要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。

ErrorLog &quot;logs/111.com-error_log&quot;
CustomLog &quot;logs/111.com-access_log&quot; common

DSC0004.png

  检查系统配置:
  [root@centos-01linux ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@centos-01linux ~]# /usr/local/apache2.4/bin/apachectl graceful
[root@centos-01linux ~]# /usr/local/apache2.4/bin/apachectl -M
在此检查Apache是否加载了虚拟主机配置中调用的rewrite模块,如果没有加载,需要编辑Apache配置文件“httpd.conf”:
  [root@centos-01linux ~]# vim /usr/local/apache2.4/conf/httpd.conf   
……
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule php5_module        modules/libphp5.so
#LoadModule php7_module        modules/libphp7.so
即,去掉注释符号“#”,加载rewrite模块。
  检测
[root@centos-01linux ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@centos-01linux ~]# /usr/local/apache2.4/bin/apachectl graceful
[root@centos-01linux ~]# /usr/local/apache2.4/bin/apachectl -M |grep rewrite
rewrite_module (shared)
  使用curl检测:
  [root@centos-01 /]# curl -x127.0.0.1:80 2111.com.cn -I
HTTP/1.1 301 Moved Permanently
Date: Tue, 20 Mar 2018 08:37:30 GMT
Server: Apache/2.4.29 (Unix) PHP/5.6.30
Location: http://111.com/
Content-Type: text/html; charset=iso-8859-1
  此时,状态码为301,即设定了域名永久跳转!
  在浏览器进行检测时,访问“www.example.com”会直接跳转到“111.com”。
11.21 Apache访问日志
  日志文件所在位置:
  [root@centos-01linux ~]# ls /usr/local/apache2.4/logs
111.com-access_log  abc.com-access_log  access_log  httpd.pid
111.com-error_log   abc.com-error_log   error_log
自定义日志格式
  系统自带日志格式:
  LogFormat &quot;%h %l %u %t \&quot;%r\&quot; %>s %b \&quot;%{Referer}i\&quot; \&quot;%{User-Agent}i\&quot;&quot; combined
LogFormat &quot;%h %l %u %t \&quot;%r\&quot; %>s %b&quot; common
#h表示host来源IP,l表示login用户,u表示user用户密码,t表示time时间,r表示request(行为),s表示status状态码,b表示byte大小
#user-agent:用户代理
#referer:跳转到当前位置的上一个网址(即:提供当前IP的网站)
即:有combine和common两种格式,默认使用common模式。
  配置日志格式
  编辑虚拟主机配置文件“httpd-vhosts.conf”:
  [root@centos-01linux ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

DocumentRoot &quot;/data/wwwroot/111.com&quot;
ServerName 111.com
ServerAlias www.example.com

RewriteEngine on
RewriteCond %{HTTP_HOST} !^111.com$
RewriteRule ^/(.)$ http://111.com/$1 [R=301,L]

ErrorLog &quot;logs/111.com-error_log&quot;
CustomLog &quot;logs/111.com-access_log&quot; combined

说明: 将日志文件后面原有 common改为combined。
  重新加载:
  [root@centos-01linux ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@centos-01linux ~]# /usr/local/apache2.4/bin/apachectl graceful
样式:
  [root@centos-01linux ~]# cat /usr/local/apache2.4/logs/111.com-access_log
mark
  Apache虚拟主机开启PHP短标签
  在虚拟主机配置文件中加入如下内容即可:
  php_admin_flag short_open_tag on
短标签作用
  如果不开启短标签,服务器将无法解析如下形式的PHP文件:
  
而只能解析:
  
这种形式的PHP文件。




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-636312-1-1.html 上篇帖子: CentOS 7.4——Apache应用之二,构建Web虚拟主机 下篇帖子: LAMP构建
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表