自学内容网 自学内容网

Nginx在Windows上和Linux上(Docker启动)分别配置基本身份认证示例

场景

Nginx代理的资源或网站等,url直接暴露有风险,需要添加身份认证,即输入用户名密码后才能成功访问。

注:

博客:
霸道流氓气质-CSDN博客

实现

Windows上配置Nginx实现基本身份认证

修改nginx的配置文件

添加基本身份认证配置设置auth_basic以及认证用户民密码文件的位置auth_basic_user_file

 server {
        listen       250;
        server_name  127.0.0.1;

        location / {
            root   D:/test/;
   # 基本验证
            auth_basic "nginx basic auth";
            auth_basic_user_file D:/test/htpasswd;
   try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

这里在D盘test目录下新建文件,新建一个txt文件,修改其内容如下

badao:123456

左边是用户名,右边是密码。多个用户名密码换行继续加

然后修改文件名为htpasswd,并且去掉后缀名,即在d盘test下新建一个htpasswd文件。

启动nginx并访问250端口测试

Linux上Docker启动Nginx配置基本身份认证示例

在linux上的流程类似,只不过密码不能使用明文,需要生成一个加密的密码。

加密密码生成方式:

安装工具httpd

 yum install httpd-tools -y

生成密码

htpasswd -nbm badao 123456

回车会输出加密后的密码

复制此密码并生成htpasswd文件

这里在/home/test/nginx/html目录下

touch htpasswd

然后编辑该文件,将上面生成的用户名密码复制进文件。

将nginx的配置文件上传至/home/test/nginx目录下并修改其内容

        location / {
            root   /usr/share/nginx/html;
            # 基本验证
            auth_basic "nginx basic auth";
            auth_basic_user_file /usr/share/nginx/html/htpasswd;
            index  index.html index.htm;
        }

这里注意html首页的路径以及用户名密码文件的路径

然后使用docker启动nginx

docker run --name nginx-auth-test  -p 250:250 -v /home/test/nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/test/nginx/html:/usr/share/nginx/html -d nginx

启动成功后访问250进行验证

如果用curl进行请求时,需要携带用户名密码可以使用如下格式

curl --user badao:123456  http://127.0.0.1:250/


原文地址:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/143743701

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!