У меня есть один хост, на котором запущены NGINX и Gunicorn внутри контейнеров Docker. Я использую NGINX для прокси-запросов к API, выставленному мной с помощью Gunicorn. Когда я запускаю каждый контейнер и перехожу к конечной точке веб-сайта, которую я настроил в моем nginx.conf
, Chrome сообщает мне об ошибке смешанного содержимого, и запрос блокируется.
Я использовал несколько версий конфигурации для моего nginx.conf
файла и не могу получить ни одну из них для устранения этой ошибки смешанного содержимого.
Мой nginx.conf
:
server {
listen 80 default_server;
listen [::]:80 default_server;
root /usr/share/nginx/html;
index index.html
server_name example.com;
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_buffer_size 8k;
ssl_dhparam /etc/ssl/certs/dhparam-2048.pem;
ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5;
ssl_ecdh_curve secp384r1;
ssl_session_tickets off;
# Redirect non-https traffic to https
if ($scheme != "https") {
return 301 https://$host$request_uri;
} # managed by Certbot
location /login {
proxy_set_header Host $host;
proxy_redirect off;
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 https;
proxy_pass http://1.2.3.4:8000/login;
}
}
А моя команда Gunicorn:
gunicorn --workers 4 --timeout 3600 --graceful-timeout 3600 --bind=0.0.0.0:8000 hserve:__hug_wsgi__"
Когда я развертываю контейнер API с помощью команды Gunicorn, описанной выше, я могу успешно отправлять запросы конечной точке с помощью Postman.
Моя цель состоит в том, чтобы иметь возможность передавать данные через контейнер API (который является http) в веб-приложение (которое является https) без смешанных ошибок содержимого.