![](/img/trans.png)
[英]Deploy django App on nginx with uwsgi or gunicorn not working
[英]Nginx redirect with Gunicorn on Django app not working properly
我开发了一个简单的 Django Web 应用程序,但目前正在努力设置 nginx 以正确提供静态文件。
该应用程序在端口8000上与 Gunicorn 一起正常运行。 我正在尝试通过访问端口8080添加静态文件。
不幸的是,在端口8080上发出请求后,我收到以下超时消息:
nginx_1 | 2020/09/02 12:16:56 [error] 27#27: *5 upstream prematurely closed connection while reading response header from upstream, client: 172.18.0.1, server: , request: "GET /admin/ HTTP/1.1", upstream: "uwsgi://172.18.0.4:8000", host: "0.0.0.0:8080"
我相信错误来自server: ,
上面错误消息的一部分,但似乎无法弄清楚如何实际解决它。
这是我的 nginx default.conf
文件:
server {
listen 8080;
location /static {
autoindex off;
alias /vol/static;
}
location / {
uwsgi_pass app:8000;
proxy_request_buffering off;
proxy_buffering off;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
include /etc/nginx/uwsgi_params;
}
}
这是我的 nginx 映像的Dockerfile
:
FROM nginxinc/nginx-unprivileged:1-alpine
COPY /docker/prod/nginx/uwsgi_params /etc/nginx/uwsgi_params
USER root
RUN mkdir -p /vol/static
RUN chmod 755 /vol/static
USER nginx
这是我docker-compose.yml
:
version: "3"
services:
app:
build:
context: .
dockerfile: docker/prod/python/Dockerfile
ports:
- 8000:8000
volumes:
- .:/workspace:cached
- static_data:/vol/web
working_dir: /workspace/src/
environment:
- DJANGO_SETTINGS_MODULE=config.settings.production
env_file:
- ./src/.env
command: sh -c "python manage.py migrate && python manage.py init_db && python manage.py collectstatic --noinput && gunicorn --preload --bind 0.0.0.0:8000 --log-level debug -w 4 config.wsgi"
# Serving static files with nginx
nginx:
build:
context: .
dockerfile: docker/prod/nginx/Dockerfile
volumes:
- static_data:/vol/static
- ./docker/prod/nginx/default.conf:/etc/nginx/conf.d/default.conf
ports:
- 8080:8080
depends_on:
- app
volumes:
pgdata:
static_data:
任何帮助将不胜感激。 我在这上面花了“很长时间”:D
我知道这不是这个问题的正确答案,但我会把它留在这里,以防有人遇到同样的问题。
我最终完全放弃了 nginx,只使用whitenoise来为我的静态文件提供服务。 配置简单 10 倍,结果似乎相同。 可能在某些情况下,一种比另一种更好,但对我而言,它效果很好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.