Шаг 1: ошибка смешанного контента в прокси NGINX

Я постоянно сталкиваюсь с ошибками смешанного содержимого и нуждаюсь в помощи для их устранения.

Я использую Nginx (работающий на AlmaLinux 9.4) в качестве обратного прокси для Discourse (стандартная Docker-версия 26.1.3, сборка b72abbb), который запущен на Ubuntu 22.04. Если я включаю force https, вход в систему становится невозможным. Ситуация аналогична описанной в предыдущей теме.

Мне нужен системный подход к разбиению этой проблемы на управляемые части. Ваши рекомендации и insights будут крайне ценны в этом процессе.

Discourse — впечатляющий программный продукт. Он превращает обсуждения в знания для всё большего числа компаний, включая наш небольшой исследовательский центр. Мы тестируем его уже несколько месяцев, и, несмотря на некоторые проблемы, нам удавалось их преодолевать благодаря вашей помощи.

Я хочу предложить его в качестве стандарта для цивилизованного обсуждения, но прежде чем сделать это, мне необходимо объяснить, почему я не могу решить некоторые, казалось бы, простые проблемы, подобные этой. Ваша помощь будет очень кстати! Спасибо за вашу поддержку!

Эта тема решает проблему принудительного использования HTTPS и обеспечивает работу входа в систему и всех остальных действий в той мере, в которой мне удалось это проверить.

Тем не менее, я всё ещё получаю некоторые сообщения об ошибках смешанного контента. Я продолжу расследование и буду обновлять эту тему.

Спасибо!

Проблема 1 решена! Больше никаких сообщений о смешанном контенте ни в одном браузере (я пробовал Firefox, Opera и Safari на macOS). Это изменение в обратном прокси-сервере Nginx также решило проблему, описанную в моём посте Проблема с ответом на тему.

В качестве справки публикую обновлённый файл конфигурации conf для Nginx:

server {
    server_name forum.igfae.usc.es;

    location / {
        proxy_set_header   X-Forwarded-Proto $scheme;
        proxy_set_header   X-Forwarded-For $remote_addr;
        proxy_set_header   Host $http_host;
        proxy_pass         "http://172.16.57.96";
    }

    listen 443 ssl; # управляется Certbot
    ssl_certificate /etc/letsencrypt/live/forum.igfae.usc.es/fullchain.pem; # управляется Certbot
    ssl_certificate_key /etc/letsencrypt/live/forum.igfae.usc.es/privkey.pem; # управляется Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # управляется Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # управляется Certbot

}

server {
    if ($host = forum.igfae.usc.es) {
        return 301 https://$host$request_uri;
    } # управляется Certbot

    server_name forum.igfae.usc.es;
    listen 80;
    return 404; # управляется Certbot

}

На момент создания этого поста в качестве обратного прокси-сервера на сервере с AlmaLinux release 9.4 (Seafoam Ocelot) запущен Nginx/1.20.1.

Discourse 3.3.0.beta3-dev работает в Docker version 26.1.3, build b72abbb на машине под управлением Ubuntu 22.04.4 LTS.

<meta name="generator" content="Discourse 3.3.0.beta3-dev - https://github.com/discourse/discourse version 625c71585623d891751b8abd291337fda3724947">

Спасибо всем!

Попробуйте прописать https в явном виде:

proxy_set_header X-Forwarded-Proto https;

Мне было трудно понять это предложение. Зачем мы должны пытаться прописать https вручную, если работает $scheme? Спасибо!

Я не очень хорошо прочитал.