2017-03-07 105 views
0

我有一个运行gunicorn -w 1 -b 0.0.0.0:8000 flaskapp:app的瓶型应用程序,下面的nginx配置。但是,我怎样才能知道nginx是否真的在为静态文件提供服务?我尝试将alias /home/pi/Public/flaskapp/static/;更改为.../static-testing/;,然后在此处放置占位符style.css,但页面似乎像以前一样加载。确认Nginx正在提供静态文件而不是Flask

server { 
    listen 5000; 
    server_name _; 
    location/{ 
     proxy_pass http://127.0.0.0.1:8000; 
     proxy_set_header Host $host; 
     proxy_set_header X-Real-IP $remote_addr; 
    } 
    location /static { 
     alias /home/pi/Public/flaskapp/static/; 
    } 
} 

我是否缺少明显的东西?是否必须在烧瓶的路线中指定某些东西?

+0

你有规则,所以它是为他们服务。如果您删除该规则,Flask将为其服务(效率低下)。其余的可能是浏览器缓存。 – davidism

+0

但是,有没有办法说明这种情况? –

+0

看看Gunicorn的原木。它处理静态资产吗?如果是这样,那么Nginx不是。 – davidism

回答

0

所以最后正确配置nginx的。我添加了root并删除了静态的硬路径,还添加了清晰显示静态和css正在从nginx加载的日志文件!我也将听音端口改为80(惊喜)。

server { 
    listen 80; 

    server_name myapp.com; 
    root /home/pi/Public/myapp; 

    access_log /home/pi/Public/myapp/logs/nginx-access.log; 
    error_log /home/pi/Public/myapp/logs/nginx-error.log; 

    location/{ 
     proxy_pass http://127.0.0.1:8000; 
     proxy_set_header Host $host; 
     proxy_set_header X-Real-IP $remote_addr; 
    } 

    location /static/ { } 

    location /uploads/ { } 
} 
0

您可以将自定义标题添加到您的nginx位置块,并查看它是否设置在您的静态文件中。

+1

我该怎么做?我新使用nginx。 –

0

你也许可以用/ static/location中提到的空路径来测试它。

server { 
    listen 5000; 
    server_name _; 

    location /static/ { 

    } 

    location/{ 
     proxy_pass http://127.0.0.0.1:8000; 
     proxy_set_header Host $host; 
     proxy_set_header X-Real-IP $remote_addr; 
    } 

}

这将给404错误,因此你可以验证,如果文件是由Nginx的服务。

+0

仍然在静态文件夹中加载文件。结论:我的设置不正常? –

+1

你可以试着把'/ static'块放在'/'块的上面,然后看看它是否有效? –

0

我认为最简单的方法是将一些上游变量记录到访问日志中。

http://nginx.org/en/docs/http/ngx_http_upstream_module.html#variables

你应该在HTTP块

upstream backend { 
    server 127.0.0.0.1:8000; 
} 

然后proxy_pass更改为http://backend添加到您的nginx的conf这一点;

现在添加

log_format upstream '$upstream_bytes_received $upstream_response_time'; 
access_log /var/log/nginx-upstream upstream; 

到您的服务器模块,然后重新启动nginx的。 当nginx没有请求上游时,你会看到' - '。

文件:http://nginx.org/en/docs/http/ngx_http_log_module.html & http://nginx.org/en/docs/http/ngx_http_upstream_module.html