Я настроил Nginx и Gunicorn с помощью Docker compose.Проблема в том, что когда я пытаюсь получить доступ к https://localhost:7778 на хост-машине, я просто получаю 502 Bad Gateway, который явно обслуживается Nginx.Я проверил, что это работает без Docker, поэтому я пришел к выводу, что я каким-то образом испортил конфигурацию Docker или не смог правильно адаптироваться к среде Docker.Файлы конфигурации можно найти ниже, и я надеюсь, что кто-то может найти ошибку.
docker-compose.yml:
version: '3'
services:
nginx:
build: ./nginx/
container_name: examplenginx
ports:
- "7777:7777"
- "7778:7778"
depends_on:
- apiprovider
apiprovider:
build: ./apiprovider/
container_name: exampleapiprovider
expose:
- "8888"
apiprovider / Dockerfile:
FROM debian:jessie
ADD requirements.txt /
ADD setup.sh /
ADD scheme.sql /
ADD utils.py /
ADD api.py /
RUN \
apt-get update && \
apt-get install -y python3 && \
apt-get install -y python3-pip && \
python3 -m pip install --upgrade pip setuptools wheel && \
pip3 install -r requirements.txt && \
./setup.sh && \
apt-get install -y sqlite3 && \
sqlite3 users.db < scheme.sql
EXPOSE 8888
CMD ["python3", "./api.py"]
nginx / Dockerfile:
FROM debian:jessie
ADD nginxsett /
ADD service.crt /
ADD service.key /
ADD run.sh /
RUN \
apt-get update && \
apt-get install -y nginx && \
cp nginxsett /etc/nginx/sites-enabled/ && \
apt-get install openssl && \
cp service.crt /etc/nginx && \
cp service.key /etc/nginx
CMD ["nginx", "-g", "daemon off;"]
nginx / nginxsett
upstream apiprovider {
server apiprovider:8888;
}
server {
listen 7777;
listen 7778 ssl;
ssl on;
ssl_certificate /etc/nginx/service.crt;
ssl_certificate_key /etc/nginx/service.key;
location / {
proxy_pass http://apiprovider/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}