Mon application React ne se chargera pas après la modification des paramètres nginx proxy_pass
P粉427877676
P粉427877676 2024-04-05 11:53:10
0
1
486

J'ai le backend Node JS de l'application React et nginx. J'ai obtenu le certificat et l'ai installé via Certbot.

Mon application effectue des requêtes get et post, mais pour cela, je dois définir le paramètre proxy_pass.

Mon fichier de blocage de serveur :

server {

        root /var/www/nikolsoborsocial/html;
        index index.html index.htm index.nginx-debian.html;

        server_name nikolsoborsocial nikolsoborsocial.org
                                     www.nikolsoborsocial.org;

        location / {
                try_files $uri $uri/ =404;
                               
        }
        
        


    listen [::]:443 ssl ipv6only=on; # managed by Certbot
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/nikolsoborsocial.org/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/nikolsoborsocial.org/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.nikolsoborsocial.org) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


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


        listen 80;
        listen [::]:80;

        server_name nikolsoborsocial nikolsoborsocial.org
                                     www.nikolsoborsocial.org;

        
        return 404; # managed by Certbot


}

Dois-je ajouter le paramètre proxy_pass ?

proxy_pass http://localhost:3000;
include proxy_params;

Si je le mets à l'emplacement du serveur 433, insérez try_files $uri $uri/ =404; 我的 React 应用程序无法加载,并且我在浏览器中收到 Cannot GET / erreur.

P粉427877676
P粉427877676

répondre à tous(1)
P粉481815897

Vous configurez votre fichier de configuration nginx pour qu'il serve les fichiers React dans le bloc serveur "location/".

Donc, si vous essayez d'ajouter le paramètre proxy_pass dans le bloc "location/", il remplacera le code qui sert le fichier de réaction. Nginx transmettra la requête au serveur backend exécuté sur localhost:3000.

Comment résoudre ce problème ?

Vous devez fournir un fichier sur votre serveur backend pour cette demande, ou ajouter un nouveau bloc d'emplacement.

Ceci est un exemple d'ajout d'un nouveau bloc d'emplacement

server {
    root /var/www/nikolsoborsocial/html;
    index index.html index.htm index.nginx-debian.html;

    server_name nikolsoborsocial nikolsoborsocial.org www.nikolsoborsocial.org;

    location / {
        try_files $uri $uri/ =404;
    }

    # Proxy Pass settings
    location /app {
        proxy_pass http://localhost:3000;
        include proxy_params;
    }

    # SSL configuration
    listen [::]:443 ssl ipv6only=on;
    listen 443 ssl;
    ssl_certificate /etc/letsencrypt/live/nikolsoborsocial.org/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/nikolsoborsocial.org/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
}
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal