是否可以获取用作 HTTP 代理的 nginx 的基本身份验证?

是否可以获取用作 HTTP 代理的 nginx 的基本身份验证?

我在简单的 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 由用户:密码组成

相关内容