2010-03-27 4 views
1

Comment configurer nginx pour la charge statique? statique doit être administré que par le serveur nginx, tout le reste nginx + dev_appserver et workingon le même hôte (localhost ou localhost: port)frontend Nginx pour le serveur AppEngine dev

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

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

Répondre

1

le mieux est de définir une des règles pour le faire avec les tests id REQUEST_FILENAME de $ existent ou pas dans votre système de fichiers avec -f test. comme ça

if (-f $request_filename) 

peut être un exemple comme ça

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

Quel est le point? Vous ne pourrez pas déployer nginx avec votre application en production - GAE ne l'autorise pas. Alors pourquoi s'en préoccuper lors du développement local?

+0

Point intéressant - je regardais cette rédiger et http://www.radomirml.com/blog/2011/01/30/reverse-proxy-for-gae-application-using-nginx-and-ssl/ il suggère qu'il est possible de mettre un proxy inverse nginx front-end devant GAE? Pouvez-vous offrir un aperçu? (Je me rends compte que votre remarque a été faite un an avant l'article de ce blog, alors peut-être que les choses ont changé?) –

1

L'utilisation if est fortement découragée par l'auteur Nginx Igor Sysoev, en particulier pour le fichier de test existance. Fournir des moyens pour réaliser ce genre de tâches qu'il a présenté pour tester existance (par exemple try_files directive

server { 
    listen 80; 

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

    location/{ 
    try_files $uri @gae; 
    } 

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

Les arguments à try_files est une liste de modèles de fichiers (vous pouvez utiliser des variables, comme dans notre exemple), vous pouvez essai $uri $uri.html $uri.htm à son tour) et le dernier argument est un endroit nommé Nginx fait une redirection vers si aucun fichier exisiting trouvé.

Questions connexes