实验一、用nginx怎么实现用户访问时的认证
一、目标
通过调整Nginx服务端配置,实现以下目标:
- 访问Web页面需要进行用户认证
- 用户名为:tom,密码为:123456
二、方案
通过Nginx实现Web页面的认证,需要修改Nginx配置文件,在配置文件中添加auth语句实现用户认证。
最后使用htpasswd命令创建用户及密码即可,服务端:192.168.4.102,客户端:192.168.4.101
三、实施步骤(nginx服务安装见我的“搭建nginx服务”)
1、修改Nginx配置文件:vim /usr/local/nginx/conf/nginx.conf
添加两行,红颜色标记
- server {
- listen 80;
- server_name localhost;
- auth_basic "Input Password:"; //认证提示符
- auth_basic_user_file "/usr/local/nginx/pass"; //认证密码文件
- location / {
- root html;
- index index.html index.htm;
- }
- }
2、生成密码文件,创建用户及密码:使用htpasswd命令创建账户文件,需要确保系统中已经安装了httpd-tools。
yum -y install httpd-tools.x86_64 //安装工具
htpasswd -c /usr/local/nginx/pass tom //创建用户名和密码,后期如果增加新的用户,不需要加-c的参数
3、测试
重启nginx服务,在客户端上192.168.4.101去访问服务器
出来如上的框,输入用户名和密码,验证是否能登陆进去
实验二、nginx基于域名的虚拟主机
一、目的
沿用上面的实验1
配置基于域名的虚拟主机,实现以下目标:
- 实现两个基于域名的虚拟主机,域名分别为www.aa.com和www.bb.com
- 对域名为www.aa.com的站点进行用户认证,用户名称为tom,密码为123456
二、方案
修改Nginx配置文件,添加server容器实现虚拟主机功能;对于需要进行用户认证的虚拟主机添加auth认证语句
三、实施步骤
1、编辑配置文件:vim /usr/local/nginx/conf/nginx.conf
server {
listen 80;
server_name www.aa.com; //指定域名
auth_basic "Input Password:"; //安全的认证
auth_basic_user_file "/usr/local/nginx/pass"; //密码文件路径
location / {
root aa; //网站的根目录
index index.html index.htm;
}
server {
listen 80;
server_name www.bb.com; //指定域名
location / {
root bb; //网站的根目录
index index.html index.htm;
}
}
2、创建访问aa网站的用户名和密码,上面已经创建了,不需要再创建
3、创建网站根目录及对应首页文件
mkdir /usr/local/nginx/aa mkdir /usr/local/nginx/bb
首页文件自己自行创建
4、重启nginx服务
5、客户端测试
由于没有做DNS解析,故在主机192.168.4.101的/etc/hosts文件,进行域名解析
添加下面的一行记录
192.168.4.102 www.aa.com www.bb.com
然后在浏览器里面输入两个域名来进行测试,得到不同的页面
原文地址:http://blog.51cto.com/453412/2058052