Como definir nginx para http e https

1

Eu preciso definir nginx responder a http e https, eu configurei meu conf padrão desta forma:

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;
  }
}

O protocolo https funciona bem, mas se eu for para o http, tenho este erro:

400 Bad Request The plain HTTP request was sent to HTTPS port
    
por hellb0y77 23.12.2014 / 12:11

1 resposta

6

A diretiva ssl habilita o SSL para todo o vhost e não examina o número da porta. Se você quiser restringir o SSL a uma única porta, substitua:

  listen       80;
  listen       443;
  ssl           on;

por:

  listen       80;
  listen       443 ssl;

Veja o link

    
por 23.12.2014 / 12:13

Tags