httpおよびhttpsリクエストに対してNginxを設定する方法

httpおよびhttpsリクエストに対してNginxを設定する方法

httpおよびhttps要求に応答するようにNginxを設定する必要があります。デフォルトのconfを次のように設定しました。

server {
  listen       80;
  listen       443;
  ssl           on;
  ssl_certificate       /etc/nginx/certs/domain-bundle.crt;
  ssl_certificate_key   /etc/nginx/certs/domain.it.key;
  server_name  static.domain.it;
  location / {
    try_files $uri @s3cache;
  }

  location @s3cache{
    proxy_cache            S3CACHE;
    proxy_cache_valid      200 48h;
    proxy_cache_valid      403 60m;
    proxy_pass http://static.domain.it.s3-external-3.amazonaws.com;
  }
}

httpsプロトコルはうまく機能しますが、http要求を実行すると次のエラーが発生します。

400 Bad Request
The plain HTTP request was sent to HTTPS port

答え1

これセキュリティソケット層ディレクティブは仮想ホスト全体で SSL をイネーブルにし、ポート番号を確認しません。 SSLを単一のポートに制限するには、次のように置き換えます。

  listen       80;
  listen       443;
  ssl           on;

通過:

  listen       80;
  listen       443 ssl;

バラよりhttp://nginx.org/r/listen

関連情報