こんにちは、
例えばブラウザで「thenameofmywebsite.com」と入力しても、自動的に安全な SSL の https へリダイレクトされません。
Discourse でこれを設定変更するにはどこを確認すればよいでしょうか?よろしくお願いいたします。
こんにちは、
例えばブラウザで「thenameofmywebsite.com」と入力しても、自動的に安全な SSL の https へリダイレクトされません。
Discourse でこれを設定変更するにはどこを確認すればよいでしょうか?よろしくお願いいたします。
Discord は別の製品です。おそらく Discourse のことをおっしゃっているのだと思います。
SSL はどのように設定しましたか?このインスタンスはどのようにインストールされましたか?
標準ガイドに従った場合、HTTPS へのリダイレクトは標準通り動作するため、別の方法でインストールしたか、インストール後に設定を変更したことが考えられます。
ごめんなさい、タイプミスでした。
これが私の discourse.conf です。
server {
if ($host = wolcengame.net) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
listen [::]:80;
server_name wolcengame.net www.wolcengame.net;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name wolcengame.net www.wolcengame.net;
https://wolcengame.net と https://www.wolcengame.net の間に違いがあります。最初のリンクは正常に動作し、ページが読み込まれますが、2 番目のリンクをクリックすると https://www.wolcengame.net に切り替わり、画面が暗くなり、何も読み込まれません。
何が間違っていて、どう修正すればよいのか見当もつきません。
この部分を削除し、nginx を再起動すれば正常に動作するはずです。
何も変わっていないと思います。問題は依然として残っています。他にアイデアはありますか?
その設定は、さまざまな方法で変更できます。
こんにちは、Bhanu さん。
DISCOURSE_HOSTNAME: wolcengame.net
同じ構成の別のウェブサイト(discourse.conf と同じ設定)があり、そこではこのような問題は発生していません。
質問ですが、Discourse が nginx のリダイレクトに干渉している可能性はありますか?昨日はあらゆる方法を試しましたが、この問題を解決するアイデアが尽きてしまいました。
これは私の 2 つ目のウェブサイト www.koktailmolotov.com です。ウェブサイトをクリックすると、自動的に https://koktailmolotov.com という形式にリダイレクトされます。設定ファイルの内容は、Discourse ウェブサイトと同じです。
それはありえません。なぜなら、すべてのトラフィックは外部の nginx が処理しているからです。ここでは、Discourse をソケット化されたテンプレートで実行しており、外部の nginx プロキシがすべてのトラフィックを処理していると仮定しています。
もし Discourse 用の nginx 設定を投稿していただければ、問題の原因を特定するお手伝いができるかもしれません。
以下は、本日時点での discourse.conf の nginx 設定全体です。
server {
listen 80; listen [::]:80; server_name www.wolcengame.net; return 301 $scheme://wolcengame.net$request_uri;}
server {
listen 443 ssl http2; listen [::]:443 ssl http2; server_name wolcengame.net www.wolcengame.net; ssl on; ssl_certificate /etc/letsencrypt/live/wolcengame.net/fullchain.pem; # Certbot によって管理されています ssl_certificate_key /etc/letsencrypt/live/wolcengame.net/privkey.pem; # Certbot によって管理されています ssl_dhparam /etc/letsencrypt/live/wolcengame.net/dhparams.pem; include /etc/nginx/snippets/ssl.conf; http2_idle_timeout 5m; # デフォルトの 3m から引き上げました location / { proxy_pass http://unix:/var/discourse/shared/standalone/nginx.http.sock; proxy_set_header Host $http_host; proxy_http_version 1.1; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Real-IP $remote_addr; }}
これを以下のように変更してください。
return 301 https://wolcengame.net$request_uri;
ここから www.wolcengame.net を削除してください。
そして、以下のように別のブロックを作成してください。
listen 443 ssl;
listen [::]:443 ssl;
server_name www.wolcengame.net;
ssl_certificate /etc/letsencrypt/live/wolcengame.net/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/wolcengame.net/privkey.pem;
return 301 https://wolcengame.net$request_uri;
はっきり言っておきますが、これは Discourse の問題ではありません。
Discourse は 1 つの FQDN でのみ動作できます。問題は、2 つの FQDN を設定しており、リダイレクトが正しく設定されていなかったことです。これらの問題に対する解決策は、他のトピックですでに回答されています。
あなたは天才ですね。これで問題が解決しました。本当にありがとうございます。
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.