2010-03-27 3 views
1

로드 정적을 위해 nginx를 구성하는 방법은 무엇입니까? 정적이 단지의 nginx 서버, 다른 모든 것들의 nginx + dev_appserver에 의해 주어진 동일한 호스트를 workingon해야한다 (로컬 호스트 또는 로컬 호스트 : 포트)App Engine 개발 서버 Nginx 프론트 엔드

Example 
    request html 
    http://localhost -> nginx -> dev_appserver 

    request static files 
    http://localhost/static/css (js,img,etc) -> nginx 

답변

1

최고의 테스트 아이디 $의 REQUEST_FILENAME에 존재 할 수있는 규칙을 정의하다 또는 -f test를 사용하여 파일 시스템에 존재하지 않을 수도 있습니다. 그

if (-f $request_filename) 

같은 exemple는 점은 무엇 그

upstream my_server { 
     server 127.0.0.1:44000; 
     server 127.0.0.1:44001; 
} 
server { 
     listen  80; 

      if (-f $request_filename) { 
       expires  max; 
       break; 
      } 
      if (!-f $request_filename){ 
       proxy_pass http://my_server; 
      } 
} 
0

처럼 될 수 있을까? 프로덕션 환경에서 앱과 함께 nginx를 배포 할 수 없습니다. GAE에서는이를 허용하지 않습니다. 그렇다면 왜 지역 개발 중에 그 일에 귀찮은가?

+0

흥미로운 점 - 나는 이것을보고 있었다. http://www.radomirml.com/blog/2011/01/30/reverse-proxy-for-gae-application-using-nginx-and-ssl/ 그리고 그것은 GAE 앞에 프론트 엔드 nginx 리버스 프록시를 넣는 것이 가능하다고 제안합니까? 어떤 통찰력을 제공 할 수 있습니까? (나는 당신의 요점이 그 블로그 기사보다 어쩌면 일이 바뀌기 1 년 전에 만들어 졌음을 깨닫는다.) –

1

if을 사용하면 Nginx 작성자 Igor Sysoev가 특히 파일 존재를 테스트하는 데 강력히 권장하지 않습니다. 작업의 종류 그가 try_filestry_files 지시

server { 
    listen 80; 

    root /var/your/gae/project/root; 

    location/{ 
    try_files $uri @gae; 
    } 

    location @gae { 
    proxy_pass http://gae; 
    } 
} 

인수를 도입 달성하기 위해 어떤 수단을 제공하려면 파일 패턴 목록 (당신이 우리의 예에서와 같이, 변수를 사용할 수 있습니다) 예를 들어, 당신이 수 (존재하지 않는지 테스트하는 것입니다 테스트 $uri $uri.html $uri.htm 차례로) 마지막 인수는 명명 된 위치입니다. Nginx는 기존 파일이없는 경우 리디렉션합니다.

관련 문제