Apache用户认证、域名跳转、Apache访问日志
httpd的用户认证
注意: 本章使用浏览器进行检测的前提是在物理机hosts文件添加虚拟机IP和虚拟主机域名。
配置用户认证
编辑httpd配置文件/usr/local/apache2.4/conf/httpd.conf
[root@localhost ~]# vim /usr/local/apache2.4/conf/httpd.conf
<Directory "/usr/local/apache2.4/htdocs/">
......
#将AllowOverride后面的None改成AuthConfig
#AllowOverride None
#添加下面几行内容:
Allowoverride AuthConfig
#打开用户认证的开关
AuthName "111.com user auth"
#登录时提示内容,作用不大
AuthType Basic
#认证方式,一般为Basic
AuthUserFile /data/.htpasswd
#指定密码文件的位置(密码文件需手动添加)
require valid-user
#设定需要认证的用户,valid-user为“AuthUserFile”中定义的所有用户
</Directory>创建httpd.conf 中指定的密码文件
[root@localhost ~]# /usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd huang
New password:
Re-type new password:
Adding password for user huang
[root@localhost ~]# cat /data/.htpasswd
huang:$apr1$4M2zku4l$pny2EUPn6ouM7wjqHCaj.0-c创建文件,-m使用md5加密。只有在第一次创建文件时才使用-c参数。创建其它用户也要通过htpasswd命令创建。
配置完成后重新加载
[root@localhost ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@localhost ~]# /usr/local/apache2.4/bin/apachectl graceful测试
[root@localhost ~]# curl -x192.168.159.128:80 111.com -I
HTTP/1.1 401 Unauthorized
Date: Wed, 20 Dec 2017 07:33:15 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
WWW-Authenticate: Basic realm="111.com user auth"
Content-Type: text/html; charset=iso-8859-1提示状态码为“401”,说明当前访问的内容需要进行用户认证。111.com为任意地址,因为配置文件中SeverName www.example.com:80。
使用用户名和密码访问:
[root@localhost ~]# curl -x192.168.159.128:80 -uhuang:159820 111.com -I
HTTP/1.1 200 OK
Date: Wed, 20 Dec 2017 08:53:27 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
Last-Modified: Mon, 11 Jun 2007 18:53:14 GMT
ETag: "2d-432a5e4a73a80"
Accept-Ranges: bytes
Content-Length: 45
Content-Type: text/html状态码为200,访问成功。其中用户名密码格式为 -u用户名:密码。
用浏览器测试:访问地址,会提示输入账号密码。输入账号密码后即可访问。
- htppasswd命令
htpasswd命令是Apache的Web服务器内置工具,用于创建和更新储存用户名、域和用户基本认证的密码文件。
参数:
-c:=create,创建一个加密文件
-n:不更新加密文件,只将更新后的用户名密码显示在屏幕上
-m:使用MD5算法对密码进行加密(默认)
-d:使用CRYPT算法对密码进行加密
-p:不对密码进行加密,即明文密码
-s:使用SHA算法对密码进行加密
-b:在命令行一并输入用户名和密码,而不是根据提示输入密码
-D:删除指定用户
对网站中指定文件设置用户认证
编辑httpd配置文件/usr/local/apache2.4/conf/httpd.conf
[root@localhost ~]# vim /usr/local/apache2.4/conf/httpd.conf
<FilesMatch 1.php>Allowoverride AuthConfig
AuthName "111.com user auth"
AuthType Basic
AuthUserFile /data/.htpasswd
require valid-user
</FilesMatch>添加上面内容。
配置完重新加载
[root@localhost ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@localhost ~]# /usr/local/apache2.4/bin/apachectl graceful检测
可以访问111.com
[root@localhost ~]# curl -x192.168.159.128:80 111.com
<html><body><h1>It works!</h1></body></html>
不可以访问111.com/1.php,代码401,1.php需要用户名密码才能访问。
[root@localhost ~]# curl -x192.168.159.128:80 111.com/1.php -I
HTTP/1.1 401 Unauthorized
Date: Wed, 20 Dec 2017 09:24:52 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
WWW-Authenticate: Basic realm="111.com user auth"
Content-Type: text/html; charset=iso-8859-1
使用用户名密码正常访问111.com/1.php
[root@localhost ~]# curl -x192.168.159.128:80 -uhuang:159820 111.com/1.php -I
HTTP/1.1 200 OK
Date: Wed, 20 Dec 2017 09:25:03 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
X-Powered-By: PHP/7.1.6
Content-Type: text/html; charset=UTF-8
用浏览器测试,能直接访问111.com。访问111.com/1.php需要用户名和密码。
对httpd虚拟主机设置用户认证
编辑虚拟主机配置文件 /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
localhost ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
添加下面内容:
<Directory /usr/local/apache2.4/htdocs>
AllowOverride AuthConfig
#打开用户认证的开关
AuthName "wellcome"
#登录时提示内容,作用不大
AuthType Basic
#认证方式,一般为Basic
AuthUserFile /data/.htpasswd
#指定密码文件的位置(密码文件需手动添加)
require valid-user
#设定需要认证的用户,valid-user为“AuthUserFile”中定义的所有用户
</Directory>
配置完成后检测更新配置。访问111.com和111.com/1.php都需要密码。
指定文件设置用户配置
localhost ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
添加下面内容:
<FilesMatch 1.php>
AllowOverride AuthConfig
#打开用户认证的开关
AuthName "wellcome"
#登录时提示内容,作用不大
AuthType Basic
#认证方式,一般为Basic
AuthUserFile /data/.htpasswd
#指定密码文件的位置(密码文件需手动添加)
require valid-user
#设定需要认证的用户,valid-user为“AuthUserFile”中定义的所有用户
</FilesMatch>配置完成后检测更新配置。访问111.com不需要密码,访问111.com/1.php需要密码。
注意: apache虚拟主机中,第一个配置为默认虚拟主机。当为第二个虚拟主机配置用户认证后,访问时不能直接访问ip,需要访问ServerName 地址。
域名跳转
域名跳转分类及区别:
种类:301表示永久跳转;302表示临时跳转。
区别:
使用效果不同
302跳转是暂时的跳转,搜索引擎会抓取新的内容而保留旧的网址。因为服务器返回302代码,搜索引擎认为新的网址只是暂时的。
301重定向是永久的重定向,搜索引擎在抓取新内容的同时也将旧的网址替换为重定向之后的网址。- SEO使用方式不同
在搜索引擎优化中302跳转被众多黑帽SEO优化人员追求,对网站进行恶意302跳转至非用户目标访问网站,因此搜索引擎对于网站的302跳转通常是比较不友好,所以要慎用302跳转!
SEO
SEO(Search Engine Optimization)搜索引擎优化,在了解搜索引擎自然排名机制的基础上,对网站进行内部及外部的调整优化,改进网站在搜索引擎中的关键词自然排名,获得更多流量,从而达成网站销售及品牌建设的预期目标
域名跳转配置
配置虚拟主机配置文件:/usr/local/apache2.4/conf/extra/httpd-vhosts.conf
[root@localhost ~]# vim /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>检查系统配置
[root@localhost ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@localhost ~]# /usr/local/apache2.4/bin/apachectl graceful
检查apache是否加载了虚拟主机中调用的rewrite模块:
[root@localhost ~]# /usr/local/apache2.4/bin/apachectl -M | grep rewrite
rewrite模块再apache配置文件httpd.conf中配置
[root@adailinux ~]# 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
修改完配置文件需要重新检测、刷新。
使curl命令检测
[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 访问日志
每一次访问请求都会记录在日志中
apache访问日志的目录为/usr/local/apache2.4/logs/
[root@localhost ~]# ls /usr/local/apache2.4/logs/
111.com-access_log 111.com-error_log abc.com-access_log abc.com-error_log access_log error_log httpd.pid
日志目录下有每个虚拟主机的日志文件
自定义日志格式
系统自带两种日志格式:combine和common,默认使用common模式。
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行为(curl时,加I为head,不加Iget)
#s表示status状态码,b表示byte大小
#user-agent:用户代理(使用什么方式访问,浏览器或者curl命令或者其它)
#referer:跳转到当前位置的上一个网址(即:提供当前IP的网站)配置日志格式
编辑虚拟主机配置文件httpd-vhosts.conf
[root@localhost ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
...
ErrorLog "logs/111.com-error_log"
CustomLog "logs/111.com-access_log" combined
...将日志文件路径后面的common改为combined
测试并重新加载
[root@localhost ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@localhost ~]# /usr/local/apache2.4/bin/apachectl graceful
可以通过cat、tail等命令查看日志,tail -f可以查看动态的日志。
转载于:https://blog.51cto.com/754599082/2052735
Apache用户认证、域名跳转、Apache访问日志相关推荐
- 4.13 apache用户认证,跳转和访问日志
Apache用户认证 有的网站在访问的时候需要我们输入账户名和密码,这样做的好处是增加了安全性,但是用户体验会很差.但是在我们在工作中还需要在一些重要的地方做一些安全认证. 首先我们编辑虚拟主机的配置 ...
- 84.LAMP的apache用户认证,域名跳转,日志文件
apache用户认证 PS:其实没有....用处的... 命令描述 htpasswd命令是Apache的Web服务器内置工具,用于创建和更新储存用户名.域和用户基本认证的密码文件. 命令语法 htpa ...
- Apache(httpd)配置--用户认证,域名跳转和访问日志配置
一.用户认证 用户认证功能就是在用户访问网站的时候,需要输入用户名密码才能进行访问.一些比较好总要的站点和网站后台都会加上用户认证,以保证安全. 实例:下面对zlinux.com站点来做一个全站的用户 ...
- 11.18 Apache用户认证 11.19/11.20 域名跳转 11.21 Apache访问日志
2019独角兽企业重金招聘Python工程师标准>>> 11.18 Apache用户认证 htpasswd命令 >htpasswd命令是Apache的Web服务器内置工具,用于 ...
- 41.Apache用户认证及访问日志 域名跳转
2019独角兽企业重金招聘Python工程师标准>>> 11.18 Apache用户认证 11.19/11.20 域名跳转 11.21 Apache访问日志 扩展 apache虚拟主 ...
- Linux CentOS7 VMware LAMP架构Apache用户认证、域名跳转、Apache访问日志
一.Apache用户认证 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //把111.com那个虚拟主机编辑成如下内容 <Virtu ...
- Apache用户认证,域名跳转
2019独角兽企业重金招聘Python工程师标准>>> 11月15日任务 11.18 Apache用户认证 11.19/11.20 域名跳转 11.21 Apache访问日志 11. ...
- 内网用户通过域名或公网IP访问内部服务器的解决办法
内网用户通过域名或公网IP访问内部服务器的解决办法 原因-路由回流 组网图 解决方案 内部NAT方案 内网用户与服务器不同网段 E0/0和E0/2都需要做nat server 内网用户与服务器相同网段 ...
- Apache用户认证、默认虚拟主机、域名301跳转
apache hosts配置文件: vim /usr/local/apache/conf/extra/httpd-vhosts.conf apache 主配置文件: vim /usr/local/ap ...
最新文章
- 为什么要用hadoop
- 屏幕截图在网页设计中应用的30个优秀案例
- css 加随机数 引用_在CSS中生成随机数
- 中采购订单批导的bapi_跟着团子学SAP PS—项目中的物料组件
- 项目:基于以太网通信,单片机作为客户端,接收CAN-Ethernet的十六进制数据
- Python 数据结构与算法——引用计数
- altiumdesigner的基本你操作
- 获取应用程序根目录物理路径(Web and Windows)
- 联想K3全系,救黑砖(只要手机链接电脑有端口识别就能恢复正常)
- 陈纪修老师《数学分析》 第04章:微分 笔记
- 司空见惯 - 会议室名称
- 马克思主义哲学与计算机专业的关系,以科学技术哲学来分析与自然辨证法的统一关系...
- 20.6.5算法心得 一元二次方程解法
- 优先队列(priority_queue)总结
- 123457123457#0#-----com.cym.shuXueWangGuo1--前拼后广--儿童数学
- 软件工程实践2019第一次作业
- 做一款微信小程序到底需要多少钱?
- Element Plus 跟踪表格数据总数,包括查询、筛选等操作
- 电信天翼云搭建Halo博客
- EM算法 估计混合高斯模型参数 Python实现