Я борюсь с подключением nginx и django (docker контейнер)
Моя стратегия такая: запустите опцию uwsgi http
и порт 8001
. (не сокет)
uwsgi --http :8001 --module myapp.wsgi --py-autoreload 1 --logto /tmp/mylog.log
тогда я подтвердил, что wget http://127.0.0.1:8001
работает.
, но из, nginx
, он не может подключиться каким-либо образом. (111: Connection refused)
ошибка
Однако из nginx wget http://django:8001
работает.
Как я могу подключиться между контейнером
upstream django {
ip_hash;
server 127.0.0.1:8001;
}
server {
listen 8000;
server_name 127.0.0.1;
charset utf-8;
location /static {
alias /static;
}
location / {
proxy_pass http://127.0.0.1:8001/;
include /etc/nginx/uwsgi_params;
}
}
server_tokens off;
Я пытаюсь эту конфигурацию, но, если я попробуйте это, мой контейнер не запускается.
журнал выглядит так 2020/03/24 08:24:04 [emerg] 1#1: upstream "django" may not have port 8001 in /etc/nginx/conf.d/app_nginx.conf:16
upstream django {
ip_hash;
server django:8001;
}
server {
listen 8000;
server_name 127.0.0.1;
charset utf-8;
location /static {
alias /static;
}
location / {
proxy_pass http://django:8001/;
include /etc/nginx/uwsgi_params;
}
}
server_tokens off;
мой docker составить очень просто ...
nginx:
image: nginx:1.13
container_name: nginx
ports:
- "8000:8000"
volumes:
- ./nginx/conf:/etc/nginx/conf.d
- ./nginx/uwsgi_params:/etc/nginx/uwsgi_params
- ./nginx/static:/static
depends_on:
- django
Наконец, благодаря помощи. мой сервер работает. окончательный conf выглядит следующим образом:
удалить upstream
и использовать имя django вместо 127.0.0.1
server {
listen 8000;
server_name 127.0.0.1;
charset utf-8;
location /static {
alias /static;
}
location / {
proxy_pass http://django:8001/;
include /etc/nginx/uwsgi_params;
}
}
server_tokens off;