Интерфейс Nginx для сервера разработки AppEngine - PullRequest
1 голос
/ 28 марта 2010

Как настроить nginx для статической нагрузки? Статические данные должны предоставляться только сервером nginx, всем остальным nginx + dev_appserver и рабочим на одном хосте (localhost или localhost: port)

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

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

Ответы [ 3 ]

1 голос
/ 29 марта 2010

Использование if настоятельно не рекомендуется автором Nginx Игорем Сысоевым, особенно для проверки существования файлов.Чтобы обеспечить некоторые средства для решения задач такого рода, он ввел директиву try_files

server {
  listen 80;

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

  location / {
    try_files $uri @gae;
  }

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

Аргументы try_files - это список шаблонов файлов (вы можете использовать переменные, как в нашем примере) для тестированиядля существования (например, вы можете проверить $uri $uri.html $uri.htm по очереди), а последним аргументом является именованное местоположение, на которое Nginx перенаправляет, если существующий файл не найден.

1 голос
/ 28 марта 2010

Лучше всего определить правила, чтобы сделать это при тестировании id $ request_filename существует или не существует в вашей файловой системе с тестом -f. вот так

if (-f $request_filename)

Пример может быть таким

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 голосов
/ 29 марта 2010

Какой смысл? Вы не сможете развернуть nginx с вашим приложением в производстве - GAE не позволяет этого. Так зачем беспокоиться об этом во время местного развития?

...