2012-12-13 5 views
0

나는 장고와 플라스크 응용 프로그램은 서로 다른 포트를 통해 동일한 시스템에서 실행이 :Nginx에 위치 괴롭게

장고 서버에서 실행 : 나는 다음과 같은 한 NGINX.conf에서 666

: 8088 플라스크는 서버에서 실행 코드 :

location/{ 
      proxy_pass   http://127.0.0.1:8088; 

     } 

location ^/server2 { 
      proxy_pass http://127.0.0.1:666; 
     } 

Django는 플라스크가 새로 추가 된이 설정으로 1 년 넘게 성공적으로 실행되었습니다. Flask URL 중 하나에 액세스하려고 할 때마다 "이 URL은이 서버에 존재하지 않습니다."라는 오류가 발생하거나 500 오류가 발생합니다.

는이 같은 특정 플라스크 URL에 대한 위치 정보를 작성하는 경우 :

location /server2/splash { 
       proxy_pass http://127.0.0.1:666/splash; 
      } 

그것은 작동을하지만 난 분명히 개별 위치 각각에 대한 정보와 플라스크 응용 프로그램의 모든 URL을 쓰고 싶지 않아.

나는 stackoverflow의 기존 Nginx 위치 게시물을 많이 통과했지만 제대로 작동하지 못했습니다. 어떤 아이디어?

감사합니다.

 location /server2{ 
      proxy_pass http://127.0.0.1:666/splash; 
     } 

     location /server2/split { 
      proxy_pass http://127.0.0.1:666/split; 
     } 

     location /server2/export { 
      proxy_pass http://127.0.0.1:666/export; 
     } 

     location /server2/import { 
      proxy_pass http://127.0.0.1:666/import; 
     } 
+0

이 문제를 해결 되었습니까 : 당신은 아마 원하는 것은

upstream 지침을 설정하는 것입니다? 두 응용 프로그램 모두 localhost 용 이었습니까? 당신은 "nginx 서버 블록"을 사용하고 있습니까? 나는 한 달 전에 비슷한 것을위한 튜토리얼을했다! 어쩌면 그것은 도움이 될 수 있습니다 [튜토리얼] (http://s.albertogrespan.com/k6hi) – albertogg

답변

0
이 내가 달성하기 위해 노력하고있어의 예를, 오히려 각 URL에 대한 개별 매핑보다, 내가 모든 URL을 커버하는 하나의 매핑을 원하는

편집

^ 기호를 사용하는 이유는 무엇입니까? 그냥 제거 나는 그것이 작동 생각 : 당신이 location /server2를 사용할 때 server2 여전히 플라스크 응용 프로그램에 전달되는

location /server2 { 
     proxy_pass http://127.0.0.1:666; 
    } 
+0

나는 (다른 사람들에게) 두 가지 방법을 시도하고 그들은 모두 같은 방식으로 실패합니다. – danspants

0

하는 것으로.

이 경우 Nginx에 다음과 같은 일을한다 :이 경우 location에서

server.com/server2 => http://127.0.0.1:666/server2 
server.com/server2/splash => http://127.0.0.1:666/server2/splash 

는 재 작성을하고 있지 않습니다. /var/log/nginx (또는 로그가있는 곳이면 어디에서나) 브라우저에서 요청한 내용과 사이트 규칙이 처리 된 후 Nginx가 찾는 내용을 확인하십시오.

upstream flask_server { 
    server 127.0.0.1:666; 
} 

server { 
    ... 

    location /server2 { 
     proxy_pass http://flask_server; 
    } 
} 
관련 문제