按照本教程,我在digitalocean服务器上部署了一个烧瓶Web应用程序: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 error.log:
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/;
}
}
}
答案 0 :(得分:0)
我使用 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;
}