2014-07-06 2 views
0

내 앱이 포트 3000에서 수신하는 역방향 프런트 엔드 프록시가있는 웹 사이트가 있습니다. 동일한 디렉토리에 속한 다른 앱이 3001에 있습니다 포트 3000에있는 사이트의 내용을 제공합니다.다른 포트에 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에있는 네임 스페이스가있는 경로를 다시 사용하지 않아도되므로 (필자는 직접 라이브러리를 편집하는 것이 싫어짐) 매우 지장이 있습니다. –