Итак, я запускаю контейнер nginx с помощью docker-compose:
Сервисы:
нгинкс:
строить:
контекст: .
докерфайл: Докерфайл
перезапуск: всегда
имя_контейнера: webserver_nginx
имя хоста: nginx
stop_grace_period: 1 м 30 с
проверка состояния здоровья:
тест: ["CMD-SHELL", "curl -sf http://127.0.0.1/ -o /dev/null || выход 1"]
интервал: 1м30с
тайм-аут: 10 сек.
повторы: 3
start_period: 40 с
порты:
- 443:443
- 80:80
тома:
# Ограничение сервиса с паролем
- ./.credentials/.htpasswd:/var/.credentials/.htpasswd
# Конфигурации Nginx
- ./nginx.conf:/etc/nginx/nginx.conf
- ./proxy_params:/etc/nginx/proxy_params
- ./conf:/etc/nginx/conf.d
#Nginx обслуживает статические файлы
- /var/backups/off:/var/web_data/off
# Ведение журнала Nginx
- /var/журнал/nginx:/var/лог/nginx
сети:
- сеть_веб-сервера
сети:
веб-сервер_сеть:
внешний: правда
Докерфайл:
ОТ nginx
CMD ["nginx", "-g", "демон выключен;"]
мой nginx.conf:
пользователь nginx;
рабочие_процессы авто;
error_log /var/log/nginx/error.log предупреждение;
pid /var/run/nginx.pid;
События {
worker_connections 1024;
}
http {
включить /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$статус $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
журнал_доступа /var/log/nginx/access.log основной;
отправить файл включен;
keepalive_timeout 65;
включить /etc/nginx/conf.d/*.conf;
}
и конфиг для моего контейнера:
сервер {
слушать 80;
слушать [::]:80;
имя_сервера имя.com;
местоположение/администратор {
прокси_пасс http://off:4000;
proxy_set_header Хост $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 100;
прокси_http_версия 1.1;
}
местоположение/статический {
псевдоним /var/web_data/off/collectstatic;
}
местоположение / СМИ {
псевдоним /var/web_data/off/upload;
}
место расположения / {
вернуть 404;
}
}
поэтому всякий раз, когда я пытаюсь запросить http://имя.com/admin
я получаю такой журнал из access.log:
127.0.0.1 - - [16/May/2022:15:53:42 +0000] "GET / HTTP/1.1" 404 153 "-" "curl/7.74.0" "-"
127.0.0.1 - - [16/May/2022:15:55:12 +0000] "GET / HTTP/1.1" 404 153 "-" "curl/7.74.0" "-"
127.0.0.1 - - [16/May/2022:15:56:42 +0000] "GET / HTTP/1.1" 404 153 "-" "curl/7.74.0" "-"
и я получаю 502 Ошибка шлюза от nginx в браузере
даже когда я пытаюсь получить доступ к основному сайту, например http://имя.com/
я продолжаю получать ошибку 502
мой контейнер состоит из:
версия: '3.8'
Сервисы:
оффч:
строить:
контекст: .
dockerfile: развернуть/бета/Dockerfile
аргументы:
РАБОЧИЙ_КАТАЛОГ: /приложение
имя_контейнера: выключено
имя хоста: Джанго
перезапустить: «всегда»
команда: gunicorn -c deploy/beta/configs/gunicorn/conf.py --chdir api api.wsgi:application
тома:
# Исходный код проекта
- .:/приложение
# Собираем статические файлы
- /var/backups/offch/collectstatic:/collectstatic
# Медиафайлы (загрузки)
- /var/backups/offch/upload:/app/media/upload
- /var/журнал/выскочка:/вар/журнал/выскочка
stop_grace_period: 1 м 30 с
проверка состояния здоровья:
тест: ["CMD", "curl", "-f", "http://127.0.0.1:4000"]
интервал: 1м30с
тайм-аут: 10 сек.
повторы: 3
start_period: 40 с
порты:
- "4000:4000"
сети:
- сеть_веб-сервера
сети:
веб-сервер_сеть:
внешний: правда
Кстати, я могу получить доступ к сайту через ip и порт, у меня только эта проблема с nginx.