第十一章LAMP架构介绍(中)

11.16/11.17 Apache默认虚拟主机
11.18 Apache用户认证
11.19/11.20 域名跳转
11.21 Apache访问日志
11.22 访问日志不记录静态文件
11.23 访问日志切割
11.24 静态元素过期时间

11.25扩展

11.26课堂笔记

 
 
11.16/11.17 Apache默认虚拟主机
• 一台服务器可以访问多个网站,每个网站都是一个虚拟主机
• 概念:域名(主机名)、DNS、解析域名、hosts
• 任何一个域名解析到这台机器,都可以访问的虚拟主机就是默认虚拟主机
 
#windows的hosts文件,作用是让你临时访问到服务器上,适用于DNS还未生效
 
vim /usr/local/apache2.4/conf/httpd.conf    #搜索httpd-vhost,去掉#
 
#每一段VirtuallHost就是一个虚拟主机
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf #改为如下
<VirtualHost *:80>
    ServerAdmin  admin@aminglinux.com       # 定义管理员的邮箱,可以删掉    
    DocumentRoot "/data/wwwroot/abc.com"    #定义网站的根目录
    ServerName  abc.com             #定义域名(只能写一个)
    ServerAlias www.abc.com       #定义别名(可以写多个)
    ErrorLog "logs/abc.com-error_log"   #定义错误日志存放位置
    CustomLog "logs/abc.com-access_log" common   ##定义访问日志存放位置
</VirtualHost>
 
<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/www.123.com"
    ServerName www.123.com
    ErrorLog "logs/123.com-error_log"   
    CustomLog "logs/123.com-access_log" common 
</VirtualHost>
 
/usr/local/apache2/bin/apachectl –t           #检测配置文件语法
/usr/local/apache2/bin/apachectl graceful   #重新加载配置文件
 
mkdir -p /data/wwwroot/www.abc.com  /data/wwwroot/www.123.com
#创建两个网站的目录
 
echo "zbc.com" > /data/wwwroot/www.abc.com/index.html 
  #给网站首页添加内容
echo "123.com" > /data/wwwroot/www.123.com/index.html
 
修改windows的hosts文件,增加一行
192.168.233.150    www.abc.com    www.123.com
 
curl命令用法
curl -x          #指定ip到指定的默认主机
curl -x192.168.233.150:80 2345.com   
#无论访问什么域名,只要是解析到192.168.233.233上,都会访问到abc.com
[root@xinlinux-03 apache2.4]# curl -x192.168.233.150:80 www.123.com
[root@xinlinux-03 apache2.4]# curl -x192.168.233.150:80 123.com
[root@xinlinux-03 apache2.4]# curl -x192.168.233.150:80 2345.com
 
curl -x127.0.0.1:80 www.123.com
curl -x127.0.0.1:80 www.123.com   -I    #-I(大写i),表示只显示状态码,不显示网站内容,状态码为401
[root@xinlinux-03 apache2.4]# curl -x127.0.0.1:80 www.123.com   -I
HTTP/1.1 200 OK
Date: Thu, 13 Sep 2018 02:03:33 GMT
Server: Apache/2.4.34 (Unix) PHP/7.1.6
Last-Modified: Thu, 13 Sep 2018 01:28:26 GMT
ETag: "8-575b69fab6a23"
Accept-Ranges: bytes
Content-Length: 8
Content-Type: text/html
[root@xinlinux-03 apache2.4]# curl -x127.0.0.1:80 www.123.com
 
总结:
一、 #只要是打开VirtuallHost,原来httpd配置文件的Servername、DocumentRoot都会失效
 
二、 httpd-vhosts.conf文件内的 第一个虚拟主机为默认虚拟主机,如果访问的域名不在其他虚拟主机中,就会访问默认虚拟主机
 
 
11.18 Apache用户认证
针对网站进行验证
1、编辑虚拟主机配置文件
•   vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf 
#把123.com那个虚拟主机编辑成如下内容:
<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/www.123.com"
    ServerName www.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>
 
2、生成密码文件,并创建用户
/usr/local/apache2.4/bin/htpasswd -cm /data/.htpasswd xin
#-c表示创建,-m指定md5加密; 指定密码文件    创建用户
[root@xinlinux-03 apache2.4]# /usr/local/apache2.4/bin/htpasswd -cm /data/.htpasswd xin
New password:
Re-type new password:
Adding password for user xin
 
3、 重新加载配置-t , graceful
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful
 
4、进行测试,如果要浏览器测试,需要绑定hosts(在windows的hosts文件添加192.168.233.150   www.123.com)
 
curl -x127.0.0.1:80 www.123.com #状态码为401(表示需要做用户验证)
[root@xinlinux-03 apache2.4]# curl -x127.0.0.1:80 www.123.com
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title> 401 Unauthorized</title>
</head><body>
<h1>Unauthorized</h1>
<p>This server could not verify that you
are authorized to access the document
requested.  Either you supplied the wrong
credentials (e.g., bad password), or your
browser doesn't understand how to supply
the credentials required.</p>
</body></html>
 
curl -x127.0.0.1:80 -uxin:1234 www.123.com #状态码为200
#-u选项后面接 用户名:密码,可直接跳过用户验证
[root@xinlinux-03 apache2.4]# curl -x127.0.0.1:80 -uxin:1234 www.123.com

 

 
还可以针对单个文件进行认证
1、编辑虚拟主机配置文件
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf 
<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/www.123.com"
    ServerName www.123.com
     <FilesMatch 123.php>        
        AllowOverride AuthConfig
        AuthName "123.com user auth"
        AuthType Basic
        AuthUserFile /data/.htpasswd
        require valid-user
    </FilesMatch>
</VirtualHost>
 
2、检查配置语法,重新加载配置文件
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful
[root@xinlinux-03 apache2.4]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@xinlinux-03 apache2.4]# /usr/local/apache2.4/bin/apachectl graceful
 
3、针对123.php文件进行验证要123.php文件存在,如果不存在,创建
编辑123.php
vim /data/wwwroot/www.123.com/123.php
<?php
echo  "123.php";
 
curl -x127.0.0.1:80 www.123.com/123.php     #状态码为401
[root@xinlinux-03 apache2.4]# curl -x127.0.0.1:80 www.123.com/123.php
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title> 401 Unauthorized</title>
</head><body>
<h1>Unauthorized</h1>
<p>This server could not verify that you
are authorized to access the document
requested.  Either you supplied the wrong
credentials (e.g., bad password), or your
browser doesn't understand how to supply
the credentials required.</p>
</body></html>
[root@xinlinux-03 apache2.4]# curl -x127.0.0.1:80 -uxin:1234 www.123.com/123.php
123.php[root@xinlinux-03 apache2.4]#
 
 
11.19/11.20 域名跳转
#搜索引擎搜索网站的先后排序是根据网站所占据的权重高低
 
域名跳转的原因:
也叫301状态跳转,永久重定向,把跳转前的旧网站的权重降低,所有权重加给跳转后的新网站
 
实例:  需求,把123.com域名跳转到www.123.com,配置如下:
1、编辑虚拟主机配置文件
vim  /usr/local/apache2.4/conf/extra/httpd-vhosts.conf 
<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>
 
 ^/(.*)$ http:# www.123.com/$1 [R=301,L]   
# ^/(.*)$   表示网站后面的内容保持不变,跳转到 http:# www.123.com/ ; $1表示有几段不变,这里是一段;[R=301,L] 表示定义状态为301
 
##301指的是永久重定向,302是临时重定向,如果是302的话,搜索引擎不会把跳转前的旧网站的权重降低
 
2、检查配置语法,重载文件
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful
 
3、检查域名跳转所需的模块
/usr/local/apache2.4/bin/apachectl -M|grep -i rewrite 
#若无该模块,需要编辑配置文件httpd.conf,删除rewrite_module (shared) 前面的#
 
4、进行测试
curl -x127.0.0.1:80 -I 123.com #状态码为301
[root@xinlinux-03 apache2.4]# curl -x127.0.0.1:80 -I 123.com
HTTP/1.1 301 Moved Permanently
Date: Thu, 13 Sep 2018 02:14:40 GMT
Server: Apache/2.4.34 (Unix) PHP/7.1.6
Content-Type: text/html; charset=iso-8859-1
 
 
11.21 Apache访问日志
1、定义log日志
vim /usr/local/apache2.4/conf/httpd.conf #搜索LogFormat
 
#显示了log使用的两种格式
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
#Log默认用的是common格式
 
combined格式参数:
User-Agent  表示用户代理,用户通过什么方式访问网站
Referer         表示上一次访问的网址是什么,例如:先访问网站首页,然后点击进入下一个网页,那上一次访问的网址就是首页
 
2、 把虚拟主机配置文件改成combined格式
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf 
<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/www.123.com"
    ServerName www.123.com
    ServerAlias 123.com
    CustomLog "logs/123.com-access_log" combined
</VirtualHost>
 
3、 重新加载配置文件
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful
 
4、进行测试
curl -x127.0.0.1:80 -I 123.com
[root@xinlinux-03 apache2.4]# curl -x127.0.0.1:80 -I 123.com
HTTP/1.1 200 OK
Date: Thu, 13 Sep 2018 02:19:42 GMT
Server: Apache/2.4.34 (Unix) PHP/7.1.6
Last-Modified: Thu, 13 Sep 2018 01:28:26 GMT
ETag: "8-575b69fab6a23"
Accept-Ranges: bytes
Content-Length: 8
Content-Type: text/html
 
5、两种日志格式对比
tail /usr/local/apache2.4/logs/123.com-access_log
common格式
127.0.0.1 - - [13/Sep/2018:10:21:31 +0800] "HEAD HTTP://123.com/ HTTP/1.1" 200 -
 
combined格式
为了显示Referer ,我将www.123.com写入博客,然后通过博客的链接点击
127.0.0.1 - - [13/Sep/2018:10:23:01 +0800] "HEAD HTTP://123.com/ HTTP/1.1" 200 - "-" "curl/7.29.0"
192.168.233.1 - - [13/Sep/2018:10:24:46 +0800] "GET / HTTP/1.1" 304 - " https://www.cnblogs.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3493.3 Safari/537.36"
 
 
11.22 访问日志不记录静态文件
chrome、firefox浏览器可以查看网站的静态文件,按F12,点击Network那一栏,然后刷新网站,静态文件就会显示出来
 
• 网站大多元素为静态文件,如图片、css、js等,这些元素可以不用记录
1、将静态文件不记录到日志里面
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf 
 把虚拟主机配置文件改成如下:
<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/www.123.com"
    ServerName www.123.com
    ServerAlias 123.com
     SetEnvIf Request_URI ".*\.gif$" img
    SetEnvIf Request_URI ".*\.jpg$" img
    SetEnvIf Request_URI ".*\.png$" img
    SetEnvIf Request_URI ".*\.bmp$" img
    SetEnvIf Request_URI ".*\.swf$" img
    SetEnvIf Request_URI ".*\.js$" img
    SetEnvIf Request_URI ".*\.css$" img
    CustomLog "logs/123.com-access_log" combined env=!img
</VirtualHost>
# env=!img     #表示符合以上条件的img都不会保存到日志
 
2、 重新加载配置文件 -t, graceful
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful
 
#上传一张图片,模拟实验效果
mkdir /data/wwwroot/www.123.com/images #创建目录,并在这目录下上传一个图片
curl -x127.0.0.1:80 -I 123.com/images/123.png
• tail /usr/local/apache2.4/logs/123.com-access_log
 
 
11.23 访问日志切割
•日志一直记录总有一天会把整个磁盘占满,所以有必要让它自动切割,并删除老的日志文件
 
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf 
• 把虚拟主机配置文件改成如下:
<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/www.123.com"
    ServerName www.123.com
    ServerAlias 123.com
   SetEnvIf Request_URI ".*\.gif$" img
    SetEnvIf Request_URI ".*\.jpg$" img
    SetEnvIf Request_URI ".*\.png$" img
    SetEnvIf Request_URI ".*\.bmp$" img
    SetEnvIf Request_URI ".*\.swf$" img
    SetEnvIf Request_URI ".*\.js$" img
    SetEnvIf Request_URI ".*\.css$" img
    CustomLog " |/usr/local/apache2.4/bin/rotatelogs -l logs/123.com-access_%Y%m%d.log 86400" combined env=!img
</VirtualHost>
 
# rotatelogs是Apache自带的日志切割工具,-l 表示以当前系统的时间为基准,不指定的话,会以UTC的时间去切割;中国时间是CST,美国时间是UTC
#设置好后,只要是每天凌晨0点的时候就会生成新的日志文件
 
• 重新加载配置文件 -t, graceful
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful
 
ls /usr/local/apache2.4/logs
 
#必须要做一个任务计划,定期将多久的日志文件删除掉或者转移,避免磁盘写满
 
 
11.24 静态元素过期时间
• 浏览器访问网站的图片时会把静态的文件缓存在本地电脑里,这样下次再访问时就不用去远程下载了
• 增加配置
 
<IfModule mod_expires.c>
    ExpiresActive on  #打开该功能的开关
    ExpiresByType image/gif  "access plus 1 days"
    ExpiresByType image/jpeg "access plus 24 hours"
    ExpiresByType image/png "access plus 24 hours"
    ExpiresByType text/css "now plus 2 hour"
    ExpiresByType application/x-javascript "now plus 2 hours"
    ExpiresByType application/javascript "now plus 2 hours"
    ExpiresByType application/x-shockwave-flash "now plus 2 hours"
    ExpiresDefault "now plus 0 min"
</IfModule>
 
• 需要打开expires_module模块
/usr/local/apache2.4/bin/apachectl -M  |grep  expires
 
• curl测试,看cache-control: max-age
 
在浏览器内CTRL+F5,可以把下载的图片缓存等全部清空
 

11.25扩展

apache虚拟主机开启php的短标签 http:#ask.apelearn.com/question/5370
 
apache日志记录代理IP以及真实客户端IP http:#ask.apelearn.com/question/960
 
apache只记录指定URI的日志 http:#ask.apelearn.com/question/981
 
apache日志记录客户端请求的域名 http:#ask.apelearn.com/question/1037
 
apache 日志切割问题 http:#ask.apelearn.com/question/566
 

11.26课堂笔记

一、Apache默认虚拟主机
虚拟主机指的是在单一机器上运行多个网站,每一个网站实际就是一个虚拟主机。虚拟主机可以“基于”IP,即每个IP一个站点,或者“基于名称”,即每个IP多个站点,也可以基于端口。目前常用的是基于名称的虚拟主机。
 
如果砸包含最具体匹配ip地址和端口组合的虚拟主机集中找不到匹配的域名或者别名,则将使用与之匹配的第一个列出的虚拟主机。这个主机就是默认的虚拟主机。
 
 
二、Apache用户认证
为满足特殊的安全需求,需要对网站或网站的特定页访问进行验证,然后才可以访问网站的相应内容,例如网站的后台管理页面,可以通过开启Apache用户认证功能实现
 
创建密码文件时:
#第一次使用时要加-c,但是第二次以后就不用加-c,不然会把之前的密码文件给覆盖了
 
 
三、域名跳转
域名跳转主要用的是Rewirte模块,该模块支持正则表达式。
 
安装Apache的时候Rewirte模块没安装上两种解决方法
1、重新编译Apache
2、使用apxs工具扩展安装该模块
 
 
四、Apache访问日志
用户的每次访问都会纪录到访问日志中,包括(访问时间、方式、内容、)
 
访问日志的目的是为了追踪谁访问过我,访问了什么资源;
 
 
 五、访问日志不记录静态文件
Apache的访问日志会纪录网站每个文件被获取的信息,这样日志信息量很大,不容易筛选有用的纪录。将静态文件的日志设置为不记录,可有提高我们排查日志信息的效率
 
 
六、访问日志切割
网站访问量的增大会导致访问日志文件变得很大,为了保持磁盘空间,方便日志的管理(查询、备份、删除等),所以需要对日志进行切割操作
 
%y%m%d表示年月日,    86400表示86400秒,即一天切割一次
 
 
七、静态元素过期时间
浏览器访问网站获取到的静态文件(图片、css等)会保存到本地的电脑缓存文件夹里,方便下次再次访问的时候提高访问速度。在服务器上设置静态元素的过期时间,可以减网站的带宽压力。
 
可以是天、消失、分钟为单位(单、复数都行)
 
 
八、扩展
1、php短标签
在虚拟主机配置文件中加入一句
php_admin_flag short_open_tag on
 
作用:可以简写php,省略掉php和结尾的?>
原来写法:
<?php
phpinfo();
?>
 
开启短标签后,可以写成:
<?
phpinfo();
 
2、日志中纪录代理ip及真实客户端ip
作用是如果用户是通过代理访问网站,加入该项可以直接查到用户的IP。
 
在log格式中插入一段  %{X-FORWARDED-FOR}i
修改后 LogFormat "%h %{X-FORWARDED-FOR}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
 
3、Apache日志只记录URL日志
SetEnvIf Request_URI "^/aaa/.*" aaa-request
CustomLog "|/usr/local/apache/bin/rotatelogs -l /usr/local/apache/logs/aaa-access_%Y%m%d.log 86400" combined env=aaa-request
 
#与日志不要静态文件相反操作
 
4、 Apache日志纪录客户端的域名
在log格式中添加%V(大写的v)
正常情况下,根本就没有必要记录这一项,毕竟咱们大都根据虚拟主机来设置相应的访问日志,但也有个别的情况,比如
ServerName *.abc.com
这样泛解析的形式,所以有必要记录一下用户请求的域名到底是哪个。
而apache的LogFormat 中正好有一项值满足了这个需求。即 %V  这里是大写的V ,小写的v 记录的是咱们在虚拟主机中设置的ServerName ,这个的确是没有必要记录的
 
11.16/11.17 Apache默认虚拟主机
11.18 Apache用户认证
11.19/11.20 域名跳转
11.21 Apache访问日志
11.22 访问日志不记录静态文件
11.23 访问日志切割
11.24 静态元素过期时间
 
11.16/11.17 Apache默认虚拟主机
• 一台服务器可以访问多个网站,每个网站都是一个虚拟主机
• 概念:域名(主机名)、DNS、解析域名、hosts
• 任何一个域名解析到这台机器,都可以访问的虚拟主机就是默认虚拟主机
 
#windows的hosts文件,作用是让你临时访问到服务器上,适用于DNS还未生效
 
vim /usr/local/apache2.4/conf/httpd.conf    #搜索httpd-vhost,去掉#
 
#每一段VirtuallHost就是一个虚拟主机
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf #改为如下
<VirtualHost *:80>
    ServerAdmin  admin@aminglinux.com       # 定义管理员的邮箱,可以删掉    
    DocumentRoot "/data/wwwroot/abc.com"    #定义网站的根目录
    ServerName  abc.com             #定义域名(只能写一个)
    ServerAlias www.abc.com       #定义别名(可以写多个)
    ErrorLog "logs/abc.com-error_log"   #定义错误日志存放位置
    CustomLog "logs/abc.com-access_log" common   ##定义访问日志存放位置
</VirtualHost>
 
<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/www.123.com"
    ServerName www.123.com
    ErrorLog "logs/123.com-error_log"   
    CustomLog "logs/123.com-access_log" common 
</VirtualHost>
 
/usr/local/apache2/bin/apachectl –t           #检测配置文件语法
/usr/local/apache2/bin/apachectl graceful   #重新加载配置文件
 
mkdir -p /data/wwwroot/www.abc.com  /data/wwwroot/www.123.com
#创建两个网站的目录
 
echo "zbc.com" > /data/wwwroot/www.abc.com/index.html 
  #给网站首页添加内容
echo "123.com" > /data/wwwroot/www.123.com/index.html
 
修改windows的hosts文件,增加一行
192.168.233.150    www.abc.com    www.123.com
 
curl命令用法
curl -x          #指定ip到指定的默认主机
curl -x192.168.233.150:80 2345.com   
#无论访问什么域名,只要是解析到192.168.233.233上,都会访问到abc.com
[root@xinlinux-03 apache2.4]# curl -x192.168.233.150:80 www.123.com
[root@xinlinux-03 apache2.4]# curl -x192.168.233.150:80 123.com
[root@xinlinux-03 apache2.4]# curl -x192.168.233.150:80 2345.com
 
curl -x127.0.0.1:80 www.123.com
curl -x127.0.0.1:80 www.123.com   -I    #-I(大写i),表示只显示状态码,不显示网站内容,状态码为401
[root@xinlinux-03 apache2.4]# curl -x127.0.0.1:80 www.123.com   -I
HTTP/1.1 200 OK
Date: Thu, 13 Sep 2018 02:03:33 GMT
Server: Apache/2.4.34 (Unix) PHP/7.1.6
Last-Modified: Thu, 13 Sep 2018 01:28:26 GMT
ETag: "8-575b69fab6a23"
Accept-Ranges: bytes
Content-Length: 8
Content-Type: text/html
[root@xinlinux-03 apache2.4]# curl -x127.0.0.1:80 www.123.com
 
总结:
一、 #只要是打开VirtuallHost,原来httpd配置文件的Servername、DocumentRoot都会失效
 
二、 httpd-vhosts.conf文件内的 第一个虚拟主机为默认虚拟主机,如果访问的域名不在其他虚拟主机中,就会访问默认虚拟主机
 
 
11.18 Apache用户认证
针对网站进行验证
1、编辑虚拟主机配置文件
•   vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf 
#把123.com那个虚拟主机编辑成如下内容:
<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/www.123.com"
    ServerName www.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>
 
2、生成密码文件,并创建用户
/usr/local/apache2.4/bin/htpasswd -cm /data/.htpasswd xin
#-c表示创建,-m指定md5加密; 指定密码文件    创建用户
[root@xinlinux-03 apache2.4]# /usr/local/apache2.4/bin/htpasswd -cm /data/.htpasswd xin
New password:
Re-type new password:
Adding password for user xin
 
3、 重新加载配置-t , graceful
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful
 
4、进行测试,如果要浏览器测试,需要绑定hosts(在windows的hosts文件添加192.168.233.150   www.123.com)
 
curl -x127.0.0.1:80 www.123.com #状态码为401(表示需要做用户验证)
[root@xinlinux-03 apache2.4]# curl -x127.0.0.1:80 www.123.com
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title> 401 Unauthorized</title>
</head><body>
<h1>Unauthorized</h1>
<p>This server could not verify that you
are authorized to access the document
requested.  Either you supplied the wrong
credentials (e.g., bad password), or your
browser doesn't understand how to supply
the credentials required.</p>
</body></html>
 
curl -x127.0.0.1:80 -uxin:1234 www.123.com #状态码为200
#-u选项后面接 用户名:密码,可直接跳过用户验证
[root@xinlinux-03 apache2.4]# curl -x127.0.0.1:80 -uxin:1234 www.123.com

 

转载于:https://www.cnblogs.com/Lucky-LGX/p/9639242.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值