Práticas recomendadas de finalização SSL do proxy NGINX

1

Estou fazendo o docker de alguns sites atrás de um proxy NGINX. Estou migrando de uma configuração do Apache e sou novo no NGINX. Tanto quanto eu entendo, eu deveria usar um proxy NGINX para um servidor web. Eu quero que tudo seja sobre SSL e todas as solicitações não ssl sejam redirecionadas para HTTPS.

Meus sites particulares que estão por trás do proxy se comunicam com o proxy pela porta HTTP 80 normal? Isso ainda está totalmente criptografado? Apenas por informação, é possível fazer proxy de um proxy NGINX para um site da apache?

    
por shiznatix 05.12.2015 / 23:21

1 resposta

3

Você precisa instalar certificados SSL no Nginx (seus clientes se comunicarão diretamente com ele) e também definir o servidor de 80 portas e redirecioná-lo para o 443. Aqui está uma configuração de exemplo para este tipo de configuração:

upstream APP {
  server CONTAINER:PORT;
}

// Redirect 80 to 443
server {
    listen 80 default_server;
    server_name yourdomain.com;
    return 301 https://www.yourdomain.com$request_uri;
}


server {
        listen 443 ssl default_server;
        server_name yourdomain.com;
        ssl on;
        ssl_certificate /etc/nginx/ssl/server.crt;
        ssl_certificate_key /etc/nginx/ssl/server.key;

 // Rest of your configuration is all up to your architecture

       location / {
            // more config...
            proxy_pass APP;
            // more config...    
       }
}

Eu não sei que tipo de aplicativos você tem em seus contêineres do Docker.
Por exemplo, se você tiver um aplicativo PHP. você pode usar o PHP-FPM & Remova completamente o Apache no meio. Nginx pode trabalhar com seu contêiner via fast-cgi. Pode haver centenas de configurações diferentes dependendo das suas necessidades & carga etc.

O Nginx é altamente (!) servidor web configurável + servidor proxy. Mas lembre-se se seus registros dns apontam para o endereço IP do Nginx, então você precisa instalar o SSL nele. & Se você contêineres não tem acesso da web, o que é uma boa prática de segurança, você não precisa criptografar o tráfego entre nginx & seus contêineres que você economiza energia da cpu

O nginx também possui uma poderosa funcionalidade de cache proxy / fastcgi, assim você pode armazenar em cache a saída do aplicativo (se eles não forem dinâmicos para cada solicitação, por exemplo, arquivos estáticos)

A partir de quarta-feira 25 de abril 14:57:24 2018 ssl on; diretiva é obsoleta. Você pode apenas comentar. Detalhes: link

    
por 06.12.2015 / 00:56