在不同端口上使用nginx进行Http基本身份验证

在不同端口上使用nginx进行Http基本身份验证,nginx,webserver,.htpasswd,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 {

我有一个带有反向前端代理的网站,我的应用程序监听端口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;
        }
}

您需要为
mydomain.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;
      }  
}
但请记住什么是通过默默无闻来保证安全——这是个坏主意。

啊哈!谢谢——这似乎奏效了!我使用的是kue.js(),在使用webapp时它会绑定到一个特定的端口,所以我只是想在它前面加上一些保护,这样你就不能主动浏览taskworker队列了。绑定到我的应用程序的同一个端口会非常草率,因为我需要导入我的路由和中间件,并确保我不会重复使用kue拥有的任何命名空间路由(另外,我讨厌直接编辑库)。