我在简单的 ubuntu VPS 上运行 nginx,它的作用就像一个简单的 HTTP 代理:
server {
listen 8080;
location / {
resolver 8.8.8.8;
proxy_pass http://$http_host$uri$is_args$args;
}
}
一切正常,但任何人都可以连接到此代理 :(。有什么简单的方法可以向其中添加一些登录名/密码吗?HTTP basic/digest/whatever 都可以。
答案1
你可以通过简单的 http 身份验证来完成
位置部分示例
location /protected/ {
proxy_pass http://192.168.1.1:1111;
proxy_set_header Host $http_host;
auth_basic "Restricted-plz-auth-urself";
auth_basic_user_file /etc/nginx/passwds/htpasswd_protected;
}
并将密码文件添加到上面指定的路径,您可以通过 htpasswd 实用程序创建它(我认为 apache2-utils 包中有这个)
答案2
如果您已编译此模块,则可以使用 auth basic。
例如:auth_basic“关闭站点”;auth_basic_user_file htpasswd;
其中 htpasswd 由用户:密码组成