私のhttp
トラフィックをすべてhttps
にリダイレクトするようにリダイレクトしたいと思います。私はletsencrypt
を使用しています。私はreturn 301 https://$server_name$request_uri;
が私のウェブサイトへのすべてのトラフィックをhttps
にリダイレクトするが、代わりにERR_TOO_MANY_REDIRECTS
という結果になることをオンラインで読んだ。nginxでERR_TOO_MANY_REDIRECTS
上記の記述がなくても問題なく動作しますが、具体的にはURLにhttps
と指定する必要があります。ここに私の/etc/nginx/sites-available/default
ファイルがあります:
server {
listen 80 default_server;
listen 443 ssl default_server;
ssl_certificate /etc/letsencrypt/live/mywebsite.me/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mywebsite.me/privkey.pem;
root /home/website/mywebsite/public;
index index.html index.htm index.php;
server_name mywebsite.me www.mywebsite.me;
return 301 https://$server_name$request_uri;
location/{
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
}
}
私は間違っていますか?
と混同しています。最初の解決策に示すように、httpとhttpsを別々のブロックに入れてください。それは私のために働いた。 –
@PritamBohraは動作しません。ご覧のとおり、別のポートと同じサーバー名のプロキシが必要です。私の設定は、sslが強制されていない背後のアプリを強制したときにうまく機能します'http:4000'が動作するとき、 'https:'は正常に動作します。そうでなければ、 'http:4000'自身が 'https:'にリダイレクトされると、設定は機能しません。これは私が多く議論したMeteorアプリケーションの一般的な問題です。おそらく、nginxだけでなく、sslを使用するように流星アプリケーションを設定する必要があります。 – sitexa