Конфигурация Nginx и SSL внутри контейнера docker не работает
Я использую следующий файл nginx conf :
server {
listen 80;
server_name domain;
# Redirect HTTP to HTTPS
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name localhost;
ssl_certificate /etc/nginx/cert/ddomain.crt;
ssl_certificate_key /etc/nginx/cert/domain.key;
location / {
proxy_pass http://0.0.0.0:8000;
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;
}
}
Я использую следующий файл docker для запуска контейнера. Этот контейнер работает на 8000 порту.
FROM python:3.8
# Set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# Set the working directory in the container
WORKDIR /app
# Install system dependencies
RUN apt-get update && apt-get install -y \
gcc \
gettext \
dbus \
libdbus-1-dev \
libcups2-dev \
libcairo2-dev \
libgirepository1.0-dev \
libgtk-3-dev \
libsecret-1-dev \
pkg-config \
wget \
nginx \
&& rm -rf /var/lib/apt/lists/*
# Copy the requirements file and install Python dependencies
COPY requirements.txt /app/
RUN pip install --no-cache-dir -r requirements.txt
# Copy SSL certificate files
COPY ssl_certificates/domain.crt /etc/nginx/cert/domain.crt
COPY ssl_certificates/domain.key /etc/nginx/cert/domain.key
# Copy the Nginx configuration file
COPY nginx.conf /etc/nginx/conf.d/default.conf
# Copy the rest of the application files
COPY . /app/
# Expose port 8000 to allow communication to/from server
EXPOSE 8000
# Your application's command to run
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
Вот команда, которую я использую для запуска контейнера
docker run -d -p 8000:8000 --name container_name image name
При обращении к приложению с помощью https://example.com:8080/. (8080 порт указывает на 8000 порт сервера) браузер показывает :
Сообщение об ошибке, например: "Этот сайт не может обеспечить безопасное соединение"
Когда я проверяю логи docker: "Вы обращаетесь к серверу разработки по HTTPS, но он поддерживает только HTTP."
Как включить HTTPS для моего домена, используя файл docker и nginx?
Пожалуйста, помогите