nginx e redirecionamento SSL

2

Eu tenho um servidor nginx que uso como proxy. Eu quero ter todas as solicitações encaminhadas como solicitações normais de http, esperar solicitação para api.meudominio.org, os pedidos que eu quero executar com ssl / https.

Isso funciona bem com o seguinte:

server {
       listen 80;
       server_name api.mydomain.org;
       return 301 https://api.mydomain.org$request_uri;
}

server {

        listen   443;
        server_name api.mydomain.org;

          location / {
                proxy_pass  http://backend;

                 proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
                 proxy_redirect off;
                 proxy_buffering off;
                 proxy_set_header        Host            $host;
                 proxy_set_header        X-Real-IP       $remote_addr;
                 proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
         }

        ssl on;
        ssl_certificate /etc/nginx/ssl/api.mydomain.org/server.crt;
        ssl_certificate_key /etc/nginx/ssl/api.mydomain.org/server.key;
}

No entanto, isso redirecionará todas as solicitações para subdomínios que não sejam especificamente especificados / qualificados. Por exemplo. a.mydomain.org ou b.meudominio.org são enviados para o link .

Como configuro isso?

    
por Luuk D. Jansen 26.11.2014 / 10:34

1 resposta

1

Adicione um bloco de servidor padrão que capture cabeçalhos de host desconhecidos e negue a conexão com eles.

server {
    listen 80 default_server;
    return 444;
}

Você pode querer adicionar seus endereços IP públicos à sua diretiva server_name em seu primeiro bloco para aceitar conexões usando HTTP / 1.0 ou HTTP / 1.1 com o endereço IP.

    
por 26.11.2014 / 11:10