Nginx实战基础篇五 如何让用户通过用户名密码认证访问我们的web站点

简介:

有时我们会有这么一种需求,就是你的网站并不想提供一个公共的访问或者某些页面不

希望公开,我们希望的是某些特定的客户端可以访问。那么我们可以在访问时要求进行身份认证,就如给你自己的家门加一把锁,以拒绝那些不速之客。

实验环境:

现在公司开通了一个内部使用网站为www1.rsyslog.org,要求所有人查看网页信息之前都必须要输入内定的用户名及密码方可浏览网页

有关nginx下虚拟主机的搭建请参看http://dreamfire.blog.51cto.com/418026/1141018 ,这里使用之前搭建的虚拟主机www1.rsyslog.org进行测试。

www1.rsyslog.org 192.168.100.107

DNS1 192.168.100.102

一、查看当前系统参数

 
  1. [root@rhel6u3-2 ~]# uname –r  //查看系统内核版本号 
  2. 2.6.32-279.el6.i686 
  3. [root@rhel6u3-2 ~]# cat /etc/redhat-release //查看系统版本号 
  4. Red Hat Enterprise Linux Server release 6.3 (Santiago) 

 

二、编辑虚拟主机配置文件

 

 
  1. [root@rhel6u3-7 ~]# vim /usr/local/nginx/conf/nginx.conf //主配置文件中http字段中添加以下语句,将虚拟主机的配置文件指向www1.rsyslog.org 
  2. include /usr/local/nginx/server/www1.rsyslog.org; 
  3. [root@rhel6u3-7 ~]# vim /usr/local/nginx/server/www1.rsyslog.org 
  4. server { 
  5.      listen       80;  //监听端口为80 
  6.      server_name  www1.rsyslog.org;  //虚拟主机网址 
  7.       location / { 
  8.             root   sites/www1;  //虚拟主机网站根目录 
  9.             index  index.html index.htm;  //虚拟主机首页 
  10.             auth_basic "secret";  //虚拟主机认证命名 
  11.             auth_basic_user_file /usr/local/nginx/passwd.db; //虚拟主机用户名密码认证数据库 
  12.         } 
  13.         location /status { 
  14.                 stub_status on;  //开启网站监控状态 
  15.                 access_log /usr/local/nginx/logs/www1_status.log; //监控日志 
  16.                 auth_basic "NginxStatus"; } 
  17.     } 

 

三、通过htpasswd命令生成用户名及对应密码数据库文件。

 

 
  1. [root@rhel6u3-7 server]# htpasswd -c /usr/local/nginx/passwd.db xiaonuo  //创建认证信息,xiaonuo 为认证用户名 
  2. New password: *******  //输入认证密码 
  3. Re-type new password: ********  //再次输入认证密码 
  4. Adding password for user xiaonuo 
  5. [root@rhel6u3-7 server]# 
  6. [root@rhel6u3-7 ~]# chmod 400 /usr/local/nginx/passwd.db  //修改网站认证数据库权限 
  7. [root@rhel6u3-7 ~]# chown nginx.  /usr/local/nginx/passwd.db  //修改网站认证数据库属主和属组 
  8. [root@rhel6u3-7 ~]# cat /usr/local/nginx/passwd.db  //可以看到通过htpasswd生成的密码为加密格式 
  9. xiaonuo:8eZAz7BqcrXmY 
  10. [root@rhel6u3-7 ~]# 

 

四、平滑重启nginx服务

 

 
  1. [root@rhel6u3-7 ~]# /etc/rc.d/init.d/nginx reload  //平滑重启nginx服务 
  2. nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok 
  3. nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful 
  4. Reloading nginx:                                           [  OK  ] 

 

五、DNS服务器上添加www1 A记录

 

 
  1. www1    A   192.168.100.107 

 

六、通过IE访问www1.rsyslog.org进行测试。

别忘了将网卡首选DNS指向192.168.100.102

 



本文转自凌激冰51CTO博客,原文链接:http://blog.51cto.com/dreamfire/1141385,如需转载请自行联系原作者

相关文章
|
8天前
|
应用服务中间件 网络安全 nginx
快速上手!使用Docker和Nginx部署Web服务的完美指南
快速上手!使用Docker和Nginx部署Web服务的完美指南
|
2月前
|
JSON JavaScript 数据格式
jwt-auth插件实现了基于JWT(JSON Web Tokens)进行认证鉴权的功能。
jwt-auth插件实现了基于JWT(JSON Web Tokens)进行认证鉴权的功能。
44 1
|
3月前
计算机网络:思科实验【1-访问WEB服务器】
计算机网络:思科实验【1-访问WEB服务器】
计算机网络:思科实验【1-访问WEB服务器】
|
2月前
|
网络协议 Shell 网络安全
实验目的1.编译安装httpd2.优化路径3.并将鲜花网站上传到web服务器为网页目录4.在客户机访问网站http://www.bdqn.com
实验目的1.编译安装httpd2.优化路径3.并将鲜花网站上传到web服务器为网页目录4.在客户机访问网站http://www.bdqn.com
166 0
|
2月前
|
前端开发 应用服务中间件 nginx
使用Docker快速搭建Web服务器Nginx
本文指导如何使用Docker快速搭建Nginx服务器。首先,通过`docker pull`命令获取Nginx镜像,然后以容器形式运行Nginx并映射端口。通过挂载目录实现本地文件与容器共享,便于自定义网页。使用`docker ps`检查运行状态,访问IP:8088确认部署成功。最后,介绍了停止、删除Nginx容器的命令,强调Docker简化了服务器部署和管理。
55 0
|
3天前
|
运维 前端开发 JavaScript
【专栏:HTML进阶篇】HTML与Web标准:构建可访问与可维护的网页
【4月更文挑战第30天】本文探讨了HTML与Web标准的关系,强调遵循标准对创建高质量、可访问、可维护网页的重要性。通过使用语义化标签、提供文本替代、合理使用表格和列表,可提升网页可访问性;通过结构化文档、添加注释、分离结构与表现,能增强网页可维护性。遵循Web标准,可确保网页在不同设备上的兼容性,并满足各类用户需求。
|
2月前
|
JavaScript Docker 容器
vue打Docker镜像动态获取IP-nginx做的web服务
vue打Docker镜像动态获取IP-nginx做的web服务
14 0
|
2月前
|
弹性计算 算法 应用服务中间件
倚天使用|Nginx性能高27%,性价比1.5倍,基于阿里云倚天ECS的Web server实践
倚天710构建的ECS产品,基于云原生独立物理核、大cache,结合CIPU新架构,倚天ECS在Nginx场景下,具备强大的性能优势。相对典型x86,Http长连接场景性能收益27%,开启gzip压缩时性能收益达到74%。 同时阿里云G8y实例售价比G7实例低23%,是Web Server最佳选择。
|
2月前
|
Windows
Windows Server 各版本搭建 Web 服务器实现访问本地 Web 网站(03~19)
Windows Server 各版本搭建 Web 服务器实现访问本地 Web 网站(03~19)
|
2月前
|
SQL JSON 应用服务中间件
web后端-win-phpMySql-nginx-web发布
web后端-win-phpMySql-nginx-web发布