Stopper 1: NGINX プロキシ 混合コンテンツエラー

混合コンテンツのエラーが頻繁に発生しており、解決の支援が必要です。

Nginx(AlmaLinux 9.4で実行中)を使用して、Ubuntu 22.04で実行されているDiscourse(標準Dockerバージョン26.1.3、ビルドb72abbbインストール)をリバースプロキシしています。force https を設定すると、ログインできません。この状況は、以前のスレッドで説明されているものと同じです。

この問題を管理可能な部分に分解するための体系的なアプローチを探しています。皆様のガイダンスと洞察は、このプロセスにおいて非常に貴重です。

Discourse は印象的なソフトウェアです。多くの企業(私たちの小さな研究センターを含む)にとって、議論を知識に変えています。数ヶ月間テストしてきましたが、いくつかの問題にもかかわらず、皆様の助けを借りてそれらを克服することができました。

標準として提案したいのですが、その前に、このような一見簡単な問題がなぜ解決できないのかを説明しなければなりません。皆様の助けをいただけると非常に助かります! ご協力ありがとうございます!

このスレッドでは、HTTPSを強制し、ログインやその他のアクションを、私がテストできた範囲で機能させる方法が解決されています。

ただし、まだいくつかの混合エラーメッセージが表示されています。調査を続け、このトピックを更新していきます。

ありがとうございます!

Stopper 1 解決!ブラウザ(macOSのFirefox、Opera、Safariで試しました)で混合コンテンツのメッセージは表示されなくなりました。Nginxリバースプロキシでのこの変更により、Problem Responding to a Topicで説明されている問題も解決しました。

参考として、更新されたNginx confファイルも掲載します。

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が実行されています。

Docker version 26.1.3, build b72abbbUbuntu 22.04.4 LTSボックス上でDiscourse 3.3.0.beta3-devが実行されています。

<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;

この提案が理解できずに困っていました。$schemeが機能するのに、なぜhttpsにハードコーディングする必要があるのでしょうか?よろしくお願いします!

よく読んでいませんでした。

「いいね!」 1

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.