Nginx поддерживает несколько имен хостов
Я работаю над проектом django + nginx + docker-compose.
Я хочу получить доступ к моему сайту через ip и mysite.com
Проблема -- ip url работает, но mysite.com
возвращает ошибку:
403 Forbidden Nginx
Мой код - docker-compose.yml
services:
django:
build: ./project # path to Dockerfile
command: sh -c "
sleep 3 && gunicorn --bind 0.0.0.0:8000 core_app.wsgi"
...
expose:
- 8000
env_file:
- ./.env
depends_on:
- db
nginx:
image: nginx:1.19.8-alpine
depends_on:
- django
env_file:
- ./.env
ports:
- "80:80"
volumes:
- ./project/nginx-conf.d/:/etc/nginx/conf.d
...
nginx-conf.conf
upstream app {
server django:8000;
}
server {
listen 80;
server_name 127.0.0.1 mysite.com www.mysite.com;
location / {
proxy_pass http://django:8000;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_redirect off;
}
location /static/ {
alias /var/www/html/static/;
}
}
Значение proxy_pass
неверно.
Когда вы ссылаетесь на группу upstream
, вы должны передать имя группы в proxy_pass
.
В вашем случае имя группы восходящего потока "app". Поэтому значение proxy_pass
должно выглядеть следующим образом:
proxy_pass http://app;