开发者社区> 科技小先锋> 正文

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,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【.NET Core项目实战-统一认证平台】第十章 授权篇-客户端授权
原文 【.NET Core项目实战-统一认证平台】第十章 授权篇-客户端授权 【.NET Core项目实战-统一认证平台】开篇及目录索引 上篇文章介绍了如何使用Dapper持久化IdentityServer4(以下简称ids4)的信息,并实现了sqlserver和mysql两种方式存储,本篇将介绍如何使用ids4进行客户端授权。
2530 0
Java秒杀系统实战系列~整合Shiro实现用户登录认证
本篇博文是“Java秒杀系统实战系列文章”的第五篇,在本篇博文中,我们将整合权限认证-授权框架Shiro,实现用户的登陆认证功能,主要用于:要求用户在抢购商品或者秒杀商品时,限制用户进行登陆!并对于特定的url(比如抢购请求对应的url)进行过滤(即当用户访问指定的url时,需要要求用户进行登陆)。
3684 0
为Druid监控配置访问权限(配置访问监控信息的用户与密码)
Druid是一个强大的新兴数据库连接池,兼容DBCP,是阿里巴巴做的开源项目. 不仅提供了强悍的数据源实现,还内置了一个比较靠谱的监控组件。  GitHub项目主页: https://github.
1528 0
mysql设置密码与远程访问
应用场景 mysql搭建完毕后,需要进行使用,但是发现没有密码,没有安全保障。另外,在命令行执行mysql很麻烦,非常变扭,可以通过Navicat客户端工具连接mysql,界面化,使库表结构更加清晰可见,所以需要设置...
1031 0
一步一步教你使用AgileEAS.NET基础类库进行应用开发-系列目录
基实这个系统是我AgileEAS.NET平台应用开发教程-案例计划的详细分解,原来想着按前面文章的思路应用写,但是发布之前的想法有点乱,我就把他分解成两个系列,使用step-by-step的方式来降解,或许这样可以会更好一些。
691 0
点站点链接出现短时间白屏或闪屏现象
以下问题只是一种可能情,不表示所有此类情况都可以解决 问题找了好长时间这个 最初以为是Asp.net或是逻辑处理慢的问题 但存为HTML后问题仍然存在,所以应该不是这个问题 后定位为Javascript 发现我在Body中加载了几个Javascript将其移至Head中,问题解决。
600 0
6965
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载