首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >验证Nginx服务的是静态文件,而不是Flask

验证Nginx服务的是静态文件,而不是Flask
EN

Stack Overflow用户
提问于 2017-03-08 03:12:36
回答 4查看 1.9K关注 0票数 6

我有一个烧瓶应用程序运行gunicorn -w 1 -b 0.0.0.0:8000 flaskapp:app与下面的nginx配置。但是,我怎么知道nginx是否真的在为静态文件提供服务呢?我尝试将alias /home/pi/Public/flaskapp/static/;更改为.../static-testing/;,只是在那里放了一个占位符style.css,但页面似乎像以前一样加载。

代码语言:javascript
复制
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/;
    }
}

我是不是漏掉了什么明显的东西?是否必须在flask的路由中指定某些内容?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-03-11 15:29:58

所以我最终正确地配置了nginx。我添加了root并删除了static的硬路径,还添加了日志文件,这些日志文件清楚地显示静态和css是从nginx加载的!我还将侦听端口更改为80 (令人惊讶)。

代码语言:javascript
复制
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/ { }
}
票数 3
EN

Stack Overflow用户

发布于 2017-03-08 04:27:40

您可能可以使用/static/位置中提到的空路径来测试这一点。

代码语言:javascript
复制
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提供服务。

票数 1
EN

Stack Overflow用户

发布于 2017-03-08 07:48:55

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

http://nginx.org/en/docs/http/ngx

您应该将其添加到您的nginx conf的http块中

代码语言:javascript
复制
upstream backend {
  server 127.0.0.0.1:8000;
}

然后将proxy_pass更改为http://backend

现在添加

代码语言:javascript
复制
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://nginx.org/en/docs/http/ngx

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42656415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档