2014-07-06 76 views
0

我有一個網站的反向前端代理,其中我的應用程序偵聽端口3000.我有另一個應用程序,坐在3001是同一目錄的一部分它爲端口3000上的站點提供內容。Http基本身份驗證與nginx在不同的端口

我想做什麼。

任何前往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; 
     } 
} 

回答

0

您需要創建不同servermydomain.com:3001mydomain.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; 
     } 
} 

但是記住通過隱藏什麼樣的安全 - 壞主意。

+0

啊哈!謝謝 - 這似乎工作!我使用kue.js(https://github.com/LearnBoost/kue/blob/master/lib/http/index.js),並且在使用webapp時綁定到特定的端口,所以我只是嘗試在它前面放置某種類型的保護,所以你不能主動瀏覽任務工作隊列。綁定到我的應用程序的同一個端口會非常潦草,因爲我需要導入我的路由和中間件,並確保我不會重用kue所具有的任何名稱空間路由(另外我討厭直接編輯庫)。 –