【问题标题】:Python flask gunicorn nginx uploading filesPython烧瓶gunicorn nginx上传文件
【发布时间】:2016-08-30 16:26:45
【问题描述】:

我按照本教程在 digitalocean 服务器上部署了一个烧瓶网络应用程序:link

我可以正确访问模板加载页面。但是,我无法上传或接收文件。我按照本教程上传文件:link

似乎 nginx 有问题。 这是它现在的样子:

server {
    listen 80;
    server_name server_domain_or_IP;

    location / {
        include proxy_params;
        proxy_pass http://unix:/home/user/project/project.sock;
    }
}

nginx 错误日志:

2016/05/04 23:08:31 [crit] 2041#0: *16 rename() "/var/lib/nginx/proxy/0/01/0000000010" to 
"/usr/share/nginx/html/login" failed (13: Permission denied) while reading upstream, client: 
[ip], server: [ip], request: "GET /login HTTP/1.1",
upstream: "http://unix:/home/user/project/project.sock:/login", host: "[ip]"

更新:我已经更新了我的项目的 nginx 配置文件,现在我可以向用户提供图片,但我仍然无法上传:

server {
    listen 80;
    server_name server_domain_or_IP;
    client_max_body_size 500M;
    location / {
        include proxy_params;
        proxy_pass http://unix:/home/user/project/project.sock;
        location /photo/ {
            proxy_store on;
            proxy_store_access all:rw;
            #photo directory
            alias /home/user/project/project/photos/;
        }
    }
}

【问题讨论】:

  • 更多信息会有所帮助,应用程序日志或 nginx 日志中是否有任何错误消息?你的 nginx 配置是什么样的?
  • 我已经用 nginx 代码编辑了这个问题。我不确定如何查看错误日志。
  • 日志应该在/var/log/nginx/
  • 好的,我已经添加了error.log

标签: python nginx flask gunicorn


【解决方案1】:

我使用 Nginx 作为代理将文件正常上传到烧瓶。 与您正在尝试做的事情的区别... 我没有把烧瓶项目变成 Linux 服务。 即使用户注销,我也使用 PM2 让烧瓶在后台运行。

提示是让烧瓶在没有 PM2 的终端中运行,以便在尝试发送文件时能够观察输出。它将显示正在发生的错误类型。

这适用于 POP-OS 20.04 LTS...

另一个细节是检查Flask用户是否被允许当场写。

我的Nginx配置如下:

location / {
    proxy_pass http://127.0.0.1:5000$request_uri;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    client_max_body_size 5M;
    }
        location /upload {
        proxy_pass http://127.0.0.1:5000$request_uri;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_store on;
        proxy_store_access all:rw;
        client_max_body_size 5M;
        }

【讨论】:

    猜你喜欢
    • 2017-05-11
    • 1970-01-01
    • 1970-01-01
    • 2016-03-19
    • 1970-01-01
    • 2017-12-03
    • 2020-08-30
    • 2017-06-06
    • 1970-01-01
    相关资源
    最近更新 更多