Nginx-Proxy lädt Datei ohne „http://“ herunter

Nginx-Proxy lädt Datei ohne „http://“ herunter

Ich habe ein Projekt mit Laravel API und NuxtJS (SSR) erstellt

Habe es auf einem AWS-Server mit Ubuntu (18.04 LTS) bereitgestellt. Mein Problem ist, dass jedes Mal, wenn ich auf den Link „example.com“ gehe, eine Datei heruntergeladen wird, aber jedes Mal, wenn ich beispielsweise ein http:// oder https:// hinzufüge, funktioniert es normal.

Hier ist mein Serverblock:

# Default

map $sent_http_content_type $expires {
        "text/html"                     epoch;
        "text/html; charset=utf-8"      epoch;
        default                         off;
}

server {
    # listen [::]:80 ssl http2;
    server_name example.com www.example.com;

    gzip            on;
    gzip_types      text/plain application/xml text/css application/javascript;
    gzip_min_length 1000;

    # Logs
    access_log /var/log/nginx/example.com_access.log;
    error_log /var/log/nginx/example.com_error.log;

    location / {

        expires $expires;

        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;

        proxy_pass                          http://127.0.0.1:3000;
        proxy_http_version                  1.1;
        proxy_set_header                    upgrade $http_upgrade;
        proxy_set_header                    Connection 'upgrade';
        proxy_set_header                    Host $host;
        proxy_cache_bypass                  $http_upgrade;

        proxy_redirect                      off;

    }

    location ~ /\.{
        access_log off;
        log_not_found off;
        deny all;
    }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

server {
    if ($host = www.example.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    if ($host = example.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    listen 80 http2;
    server_name example.com www.example.com;
    return 404; # managed by Certbot
}

Antwort1

Behoben durch Änderung

server {
    if ($host = www.example.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    if ($host = example.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    listen 80 http2;
    server_name example.com www.example.com;
    return 404; # managed by Certbot
}

Zu:

server {
    listen 80 default_server;

    server_name example.com www.example.com

    return 301 https://$host$request_uri
}

verwandte Informationen