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.
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