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;