【工作】Nginx 实现域名的登录验证功能

热门标签

, , , , , ,

一一网络

做互联网综合资源分享云平台!。

立即加入一一网络

特别声明:文章多为网络转载,资源使用一般不提供任何帮助,特殊资源除外,如有侵权请联系!

【背景说明】

研发有个需求,访问公司某个域名下的某个url时候需要认证,只有输入正确的用户密码才允许访问web内容。

【实现思路】

Nginx服务中的"ngx_http_auth_basic_module"模块可以实现此要求,默认情况下编译安装完nginx后,就已经安装启用了ngx_http_auth_basic_module模块,如果不需要这个模块,可以加上 --without-http_auth_basic_module关闭。

ngx_http_auth_basic_module模块指令:

语法: auth_basic string | off;
默认值: auth_basic off;
作用:默认表示不开启认证,后面如果跟上字符,这些字符会在弹窗中显示。
配置段: http, server, location, limit_except
语法: auth_basic_user_file file;
默认值: 无
作用:指定密码文件的位置,可以是相对路径或者绝对路径
配置段: http, server, location, limit_except

【实现过程】

下面以我的网站www.jiagoumi.com来演示此功能的实现过程,需求是仅当访问http://www.jiagoumi.com/test/时候输入密码才能访问

1.使用openssl生成密码文件

# printf "test:$(openssl passwd -crypt 123123)\n" >> /usr/local/nginx/conf/htpasswd.auth
[root@160719 nginx]# cat /usr/local/nginx/conf/htpasswd
test:bFJVr/zQWK60.

2.修改虚拟主机配置文件:

 下面红色部分为添加实现的代码
server {
    listen       80;
    server_name    www.jiagoumi.com;
    access_log    logs/www.jiagoumi.com.access.log;
    error_log     logs/www.jiagoumi.com.error.log;
     
    location /test {
     auth_basic "Authorization Required";
     auth_basic_user_file /usr/local/nginx/conf/htpasswd.auth;
     index  index.php index.html index.htm;
     root   /data/nginx/site/www.jiagoumi.com;
     }

    location /
    {
        proxy_set_header        Host  $host;
        proxy_set_header        X-Real-IP  $remote_addr;
        proxy_set_header        REMOTE-HOST $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass              http://192.168.1.1:8080;
    }

验证配置文件,重启Nginx服务:

# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/nginx.conf test is successful

# /usr/local/nginx/sbin/nginx -s reload

3.验证效果:

访问http://www.jiagoumi.com/test/会提示输入密码,输入上面创建的账号密码即可登录查看内容。
注意:此功能需要使用IE兼容模式访问,使用chrome内核的浏览器无法正常访问。
【工作】Nginx 实现域名的登录验证功能

未经允许不得转载:作者:admin, 转载或复制请以 超链接形式 并注明出处 一一网络
原文地址:《【工作】Nginx 实现域名的登录验证功能》 发布于2019-06-17

分享到:
赞(1)

评论 抢沙发

评论前必须登录!

  注册



【工作】Nginx 实现域名的登录验证功能

长按图片转发给朋友

一一网络
一一网络是一个做互联网的综合资源分享平台,邹洪博客,Emblog,Blog,免费,技术教程,破解源码,资源分享,永久免费,资源分享平台,免费破解,资源分享云平台,永久免费,技术教程分享网站,免费技术学习平台,一一网络是一个专注于网络资源开发和共享加建站教程、源码下载、WordPress主题、网站开发交流、程序软件下载、建站资源、多媒体交流、电影资源、Android软件分享为一体的多互动交流平台。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录