打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
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


本文出自 “小诺的Linux开源技术博客” 博客,请务必保留此出处http://dreamfire.blog.51cto.com/418026/1141385

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Centos下使用rpmbuild以及checkinstall制作RPM包
RHEL / CentOS 7 安裝 Nginx, MySQL, PHP (LEMP) | Linux 技術手札
Nginx安装简记(含PHP支持、虚拟主机、反向代理负载均衡
Nginx的配置详解
nginx作为web服务以及nginx.conf详解
Eleght科技:Nginx基于域名以及多域名的虚拟主机部署详细教程
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服