Nginx实现代理和用户验证

1.下载Nginx

首先去官网http://nginx.org/en/download.html下载需要的版本即可,无需安装,只需要打开nginx.exe文件,nginx.exe的服务就开启了。打开http://localhost/就可以看到nginx启动成功的信息。默认情况下nginx已经安装了ngx_http_auth_basic_module模块。

2.配置server

打开nginx.conf文件中,增加一个server的监控,代码如下:

server {
#监听端口号
listen 8081;
auth_basic "config Auth";
#密码地址
auth_basic_user_file D:config.password;
location / {
   #代理地址
proxy_pass http://192.168.21.1:8088/;
proxy_redirect default;
}
}
其中auth_basic_user_file可以使用htpasswd,或者使用openssl,htpasswd可以使用apach2-utils在linux生成。
添加完成之后,重新启动Nginx服务,这是打开相应的网站,就会弹出一个这样的输入框,输入响应的用户名和密码,即可访问网站。

输入相应的用户名和密码,即可访问网站。

3.401 Authorization Required问题

现在能访问静态页面,但是请求数据的接口会返回一个401 Authorization Required的错误回来,如下图,

 

这是由于接口没有配置相应的Authorization header,所以我们需要在请求的接口配置Authorization header,格式为‘Basic ’+用户名:密码,用户名:密码需要使用base64加密下,代码如下,

'Authorization':"Basic "+Base64.encode("test:123")
请求效果如下:

如果需要修改密码或是用户名,替换auth_basic_user_file 文件就可以了

原文地址:https://www.cnblogs.com/heihei-haha/p/7754718.html