web-dev-qa-db-ja.com

単一のnginx仮想サーバーでポート80と443の両方をどのように処理できますか?

仮想サーバーが設定された構成ファイルがあります。これは、SSLのポート443で実行されています。また、この同じ仮想サーバーがポート80で非SSLトラフィックを処理するようにします。

私は次のことを望んでいましたが、うまくいかないようです。

server {
    listen 443 ssl;
    listen 80;
    server_name example.com;
    ...
}

これらの設定の下のsslオプションが非sslトラフィックに問題を引き起こしているようです。

19
ArthurGuy

削除する ssl on;ディレクティブ。

sslディレクティブのlistenフラグはまさに必要なものです。

http://nginx.org/en/docs/http/configuring_https_servers.html#single_http_https_server を参照してください

16
Alexey Ten

はい、もちろん。

server {
  listen 80;
  listen 443 ssl;
  # force https-redirects
  if ($scheme = http) {
    return 301 https://$server_name$request_uri;
  }
}

これが私の投稿です。名前は「 HTTPSのNginx設定 」です。これには詳細が含まれています。

19
Haimei