如何为负载静态配置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
答案 0 :(得分:1)
最好的是使用-f test在您的文件系统中定义使用测试id $ request_filename存在与否的规则。像那样
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;
}
}
答案 1 :(得分:1)
Nginx作者Igor Sysoev强烈建议不要使用if
,尤其是测试文件存在。为了提供一些方法来实现这种任务,他引入了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会重定向。
答案 2 :(得分:0)
重点是什么?您将无法在生产中使用您的应用部署nginx - GAE不允许它。那么为什么在本地开发过程中会烦恼呢?