Http基本auth与nginx在不同的端口上

时间:2014-07-06 16:47:20

标签: nginx webserver .htpasswd

我有一个带有反向前端代理的网站,其中我的应用程序在端口3000上侦听。我有另一个应用程序位于3001上,该应用程序是为该网站提供内容的同一目录的一部分港口3000。

我想做什么。

任何前往mydomain.com:3001的人都会被提示输入auth_basic个凭据。任何前往mydomain.com的人都可以正常通过。

我当前的nginx配置:

upstream app_example {
      server 127.0.0.1:3000;
      keepalive 64;
}

server {
      root /var/www/example;
      listen 0.0.0.0:80;
      server_name example.com example;
      access_log /var/log/nginx/app_example.log;
}

会是这样的吗?

upstream app_tools {
    server 127.0.0.1:3001;
}

server {
        listen 80;
        server_name example.com example;

        location / {
        auth_basic      "secured site tools";
        auth_basic_user_file /var/www/example/.htpasswd;
            proxy_pass http://app_tools;
        }
}

1 个答案:

答案 0 :(得分:0)

您需要为servermydomain.com:3001

创建不同的mydomain.com
upstream app_tools {
      server 127.0.0.1:3000;
      keepalive 64;
}


server {
      root /var/www/example;
      listen 0.0.0.0:80;
      server_name mydomain.com;
      access_log /var/log/nginx/app_example.log;
      location / {
            proxy_pass http://app_tools;
      }  
}


server {
      root /var/www/example;
      listen 0.0.0.0:3001;
      server_name mydomain.com;
      access_log /var/log/nginx/app_example_secure.log;
      location / {
            auth_basic      "secured site tools";
            auth_basic_user_file /var/www/example/.htpasswd;
            proxy_pass http://app_tools;
      }  
}

但要记住通过默默无闻的安全性 - 糟糕的主意。