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

관련 정보