nginx服务做用户认证和基于域名的虚拟主机

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx服务做用户认证和基于域名的虚拟主机相关的知识,希望对你有一定的参考价值。

实验一、用nginx怎么实现用户访问时的认证


一、目标

       通过调整Nginx服务端配置,实现以下目标:

  1. 访问Web页面需要进行用户认证

  2. 用户名为: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

         添加两行,红颜色标记

  1. server {

  2. listen       80;

  3. server_name  localhost;

  4. auth_basic "Input Password:";        //认证提示符

  5. auth_basic_user_file "/usr/local/nginx/pass";        //认证密码文件

  6. location / {

  7. root   html;

  8. index  index.html index.htm;

  9. }

  10. }

   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

配置基于域名的虚拟主机,实现以下目标:

  1. 实现两个基于域名的虚拟主机,域名分别为www.aa.com和www.bb.com

  2. 对域名为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

   然后在浏览器里面输入两个域名来进行测试,得到不同的页面




















以上是关于nginx服务做用户认证和基于域名的虚拟主机的主要内容,如果未能解决你的问题,请参考以下文章

13_搭建Nginx服务器配置网页认证基于域名的虚拟主机ssl虚拟主机

LNMPNginx默认虚拟主机Nginx用户认证Nginx域名重定向Nginx访问日志

Nginx虚拟主机配置实践

12.6 Nginx安装12.7 默认虚拟主机12.8Nginx用户认证12.9Nginx域名重定向

Nginx虚拟主机 (基于域名 基于端口 基于ip)

基于域名的虚拟主机