详解Nginx实战之让用户通过用户名密码认证访问web站点

 更新时间:2016年11月29日 11:43:32   作者:小诺的Linux开源技术博客  
这篇文章主要介绍了详解Nginx实战之让用户通过用户名密码认证访问web站点,有兴趣的可以了解一下。

有时我们会有这么一种需求,就是你的网站并不想提供一个公共的访问或者某些页面不希望公开,我们希望的是某些特定的客户端可以访问。那么我们可以在访问时要求进行身份认证,就如给你自己的家门加一把锁,以拒绝那些不速之客。

实验环境:

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

使用nginx下虚拟主机的搭建

www1.rsyslog.org进行测试。

www1.rsyslog.org 192.168.100.107

DNS1 192.168.100.102

一、查看当前系统参数

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

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

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

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

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

四、平滑重启nginx服务

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

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

www1    A   192.168.100.107

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

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • nginx的语法(基本语法和组成部分)

    nginx的语法(基本语法和组成部分)

    Nginx是一个高效、稳定的开源Web服务器和反向代理服务器,也可以用作邮件代理服务器、负载均衡器和HTTP缓存,很多人都选择nginx作为web服务器使用,下面是Nginx配置文件的一些基本语法和组成部分,使用Nginx的朋友可以了解一下
    2023-05-05
  • Nginx HTTP:413 Request Entity Too Large解决方法

    Nginx HTTP:413 Request Entity Too Large解决方法

    这篇文章主要介绍了Nginx HTTP:413 Request Entity Too Large解决方法,这个问题需要修改PHP配置以及Nginx配置才可以解决,需要的朋友可以参考下
    2015-07-07
  • Nginx列出目录和文件并用密码控制访问权限配置方法

    Nginx列出目录和文件并用密码控制访问权限配置方法

    这篇文章主要介绍了Nginx列出目录和文件并用密码控制访问权限配置方法,本文给出了详细的安装配置步骤,需要的朋友可以参考下
    2015-07-07
  • Nginx访问控制的原理及实现

    Nginx访问控制的原理及实现

    访问控制是一种安全机制,旨在限制系统或网络资源的访问权限,本文主要介绍了Nginx访问控制的原理及实现,具有一定的参考价值,感兴趣的可以了解一下
    2024-07-07
  • nginx设置上传目录无执行权限的方法

    nginx设置上传目录无执行权限的方法

    在windows+iis下,可以设置上传目录,类似:upload,uploadfile,attachments,这样的目录下面无脚本执行权限,从而防止非法用户上传脚本得到webshell
    2010-11-11
  • 在Nginx服务器上安装SSL证书完成HTTPS请求的步骤详解(springboot项目)

    在Nginx服务器上安装SSL证书完成HTTPS请求的步骤详解(springboot项目)

    这篇文章主要介绍了在Nginx服务器上安装SSL证书完成HTTPS请求(springboot项目),首先需要下载证书到本地接着在Nginx独立服务器上安装证书,本文给大家介绍的非常详细,需要的朋友参考下吧
    2022-04-04
  • nginx上传文件大小报错500的解决办法

    nginx上传文件大小报错500的解决办法

    这篇文章主要介绍了nginx上传文件大小报错解决办法的相关资料,小文件可以提交,大文件会报500内部错误,这里提供解决办法,需要的朋友可以参考下
    2017-08-08
  • Nginx+SSL+Node.js运行环境配置教程

    Nginx+SSL+Node.js运行环境配置教程

    这篇文章主要介绍了Nginx+SSL+Node.js运行环境配置教程,本文用反向代理的方式代理基于Node.js的Web应用,需要的朋友可以参考下
    2014-09-09
  • CentOS下编译安装nginx及配置缩略图插件的方法教程

    CentOS下编译安装nginx及配置缩略图插件的方法教程

    这篇文章主要给大家介绍了在CentOS系统下编译安装nginx及配置缩略图插件的方法教程,文中给出了详细的安装步骤,对大家具有一定的参考价值,有需要的朋友们下面来一起看看吧。
    2017-02-02
  • Nginx自定义日志中时间格式的操作方法

    Nginx自定义日志中时间格式的操作方法

    工作需要对接内部的日志中台,对日志打印有固定的格式要求,为了使Nginx的access日志也能被采集,需要对日志格式进行自定义,这篇文章主要介绍了Nginx自定义日志中时间格式,需要的朋友可以参考下
    2023-11-11

最新评论