Não é possível redirecionar HTTP para HTTPS no NGINX

1

Eu tenho tentado por alguns dias configurar meu certificado SSL no NGINX, eu consegui trabalhar, mas tentei maneiras diferentes de redirecionar meu tráfego HTTP para HTTPS, todas as configurações que eu tentei falharam, eu copiei meu arquivo de configuração abaixo (ou o que resta dele) para alguém dar uma olhada nisso, o SSL está funcionando quando eu tipe link , mas não consigo fazer funcionar quando digitando www.example.com, continue recebendo erro 404 não é possível redirecionar o tráfego para https, eu comentei as linhas ssl para que eu possa manter meu site em execução na porta 80 até que eu descobrir isso, qualquer ajuda será apreciada, obrigado

#include /etc/nginx/blockuseragents.rules;
#        server {
#        if ($blockedagent) {
#               return 403;
#        }
#        if ($request_method !~ ^(GET|HEAD|POST)$) {
#        return 444;
#        }
#        listen [::]:80;
#        listen 80;
#        server_name example.com www.example.com;
#
#
#       listen [::]:443 ssl http2;
#       listen 443 ssl http2;
#        server_name www.example.com;
#
#         ssl off;
# SSL configuration
#        #
#        ssl_prefer_server_ciphers  on;
#        ssl_ciphers  'ECDH !aNULL !eNULL !SSLv2 !SSLv3';
#        ssl_certificate  /etc/nginx/ssl/file.crt;
#        ssl_certificate_key  /etc/nginx/ssl/server.key;
#        server_name www.example.com;
#
#        root "/var/www/example.com/html/web";
#        index index.html index.htm index.php;
#        charset utf-8;

        location / {
        try_files $uri $uri/ /index.php?$args;
        }
        location @rewrite {
        rewrite ^/(.*)$ /index.php?r=$1;
        }
    
por someguy 12.04.2018 / 05:17

1 resposta

0

Você precisa de seções separadas do {} servidor em sua configuração para cada site que deseja veicular e, considerando que deseja um comportamento diferente com base no fato de o usuário chegar em http: ou https: , elas devem ser definidas como servidor separado { } seções.

Em um deles, você ouviria na porta 80 e o outro ouviria na porta 443 e habilitaria ssl e http2.

No que escuta na porta 80, a única coisa que você deseja declarar nessa seção é um redirecionamento para o mesmo URL, mas com https: .

No meu site, esses stubs de redirecionamento parecem:

server {
        listen 80;
        listen [::]:80;

        server_name some.example.com;

        return 301 https://some.example.com$request_uri;
}
    
por thomasrutter 12.04.2018 / 05:31