nginx uwsgi – 什么是提供静态文件?

我使用Nginx作为几个烧瓶应用程序的代理,uwsgi作为中间件.这是我的测试应用程序的Nginx配置.


server {
    listen      80;
    server_name test.myapp.com www.test.myapp.com;
    charset     utf-8;
    client_max_body_size 250M;
    location / { try_files $uri @testapp; }

location @testapp {
    include uwsgi_params;
    uwsgi_pass unix:/tmp/testapp_uwsgi.sock;
}

location /forecaster/components/ {
    alias /opt/test/client/app/components/;
}

}

我很确定Nginx实际上并没有提供静态文件,即使我注释掉了位置块,文件也会从某些东西中获得服务.我在Nginx日志中看到200,在uWsgi日志中看到200.你怎么知道哪一个提供静态文件?我想烧瓶应用程序也可以为他们服务?

/ opt / test / client / app / components /当然存在,并且对其他人可读.有没有办法迫使uwsgi不处理这些请求?

最佳答案
你确实需要一个位置.但这并不是Nginx不提供静态文件的原因.

问题是您忘记在服务器块中指定根指令.因此,Nginx使用其编译的默认值,这是系统相关的,几乎可以肯定不是您的Web应用程序所在的位置.因此,包括静态文件在内的所有请求都向uWSGI上游发送.

解决此问题,请设置指向应用程序静态资源的根指令.

server {
    root /srv/www/testapp;

或者,如果子目录中只有静态文件,则可以使用位置和别名as shown in the uWSGI documentation指定.

location /static {
    alias /srv/www/testapp/static;
}

相关文章

一、Linux下Nginx的安装 1.去官网 http://nginx.org/download/下载对应的Nginx安装包,推荐使...
一、空格:默认匹配、普通匹配 location / { root /home; } 二、= :精确匹配(表示匹配到 /home/resou...
``` nginx -c 配置文件路径 ``` ``` /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.con...
前言 nginx可所谓是如今最好用的软件级别的负载均衡了。通过nginx的高性能,并发能力强,占用内存下的特...
1.ngnix概念 Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄...
博客园从今天上午就开始报502错误 , 他的原因还不知道 , 暂时先说下我们遇到502的排查情况 最大的可能性...