2013-04-25 2 views
9

동일한 인스턴스 (예 : 포트 80 및 포트 81)의 두 포트에서 nginx를 구성하려고합니다. 그러나 지금까지 행운은 없습니다. 여기에 내가 뭘하려고 오전의 예입니다Nginx를 여러 포트에서 실행하는 방법

worker_processes 1; 

events { 
    worker_connections 1024; 
} 

http { 
    include  mime.types; 
    default_type application/octet-stream; 
    sendfile  on; 
    keepalive_timeout 65; 

    server { 
     listen 80; 
     server_name chat.local.com; 

     location/{ 
      proxy_pass http://127.0.0.1:8080; 
      proxy_http_version 1.1; 
      proxy_set_header Upgrade $http_upgrade; 
      proxy_set_header Connection "Upgrade"; 
      proxy_set_header Host $host; 
      proxy_buffering off; 

     } 
     error_page 500 502 503 504 /50x.html; 
     location = /50x.html { 
      root html; 
     } 

    } 

    server { 
     listen 81; 
     server_name console.local.com; 
     location/{ 
      proxy_pass http://127.0.0.1:8888; 
      proxy_http_version 1.1; 
      proxy_set_header Upgrade $http_upgrade; 
      proxy_set_header Connection "Upgrade"; 
      proxy_set_header Host $host; 
      proxy_buffering off; 
     } 
    } 
} 

내가 console.local.com를 실행하려고, 그것은 chat.local.com의 내용을 보여줍니다. 두 개의 포트에서 nginx를 실행할 수있는 방법이 있습니까? 미리 감사드립니다!

답변

7

당신의 설정은

나는 문제가이 (내가 틀렸다면 정정 해줘) 생각 괜찮아 보인다 : 당신이 console.local.com 포트 81에서 수신 한

  • ,
  • 을 그 http://console.local.com/으로 액세스 할 때 http://console.local.com:81/
  • 으로 액세스해야한다는 것을 의미합니다 (명시 적 포트가 없으므로 포트 80이 기본값 임). nginx는 해당 server_name에 대한 포트 80에서 수신 대기중인 것을 확인하고 단점 해당 요청을 기본 서버 블록으로 동일하게 전달합니다. defaut 서버 블록이 첫 번째 구성이므로 (구성을 변경하지 않으면) chat.local.com 처리가 끝납니다. 모두 serverblocks에서

    • 경우 서버 이름 지시어는
    • 이 방지 요청을 차별화하는 데 충분하다 : 모두에서

  • 이후 당신은 또한 포트 80에서 청취 할 console.local.com을 변경하려면 동반 할 가능성 당신은 : 81 도메인 이름에 항상 추가 할 필요가있다.
+0

안녕 Cobaco, 나는 완전히 내가 그 점을 지적하기위한 포트 (81) 감사 페이지에 액세스해야하는 위치를 잊어 버렸의 nginx와 함께 작동합니다. – Uday

3

간단한 2 번 청취 문장을 추가 할 수있다. 아래처럼
듣기 80;
듣기 81;

관련 문제