Am o următoare aplicație js pe care am implementat-o pe portul 3000 și am setat proxy-ul 3000 pe nginx.
Acum am serverul meu personalizat Node js Backend pe care vreau să îl rulez pe același server pe un port diferit 5000.
Am configurat nginx-ul așa
Locație / {
proxy_http_versiunea 1.1;
proxy_cache_bypass $http_upgrade;
proxy_set_header Actualizare $http_upgrade;
proxy_set_header Conexiune „upgrade”;
proxy_set_header Gazdă $gazdă;
proxy_set_header X-Real-IP $adresă_la distanță;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $schema;
proxy_pass http://localhost:3000;
}
locație ^~ /api {
proxy_http_versiunea 1.1;
proxy_cache_bypass $http_upgrade;
proxy_set_header Actualizare $http_upgrade;
proxy_set_header Conexiune „upgrade”;
proxy_set_header Gazdă $gazdă;
proxy_set_header X-Real-IP $adresă_la distanță;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $schema;
proxy_pass http://localhost:5000;
}
Nu am nicio problemă cu accesarea aplicației pe example.com.
Am configurat locația /api pentru conectarea server.js / api fetching.
când aduc așa
axios.get(example.com/api)
eroarea sa de returnare -- Nu se poate GET /api/
dar când am setat proxy-ul de locație nginx așa
proxy_pass http://localhost:5000/;
cu o bară oblică înainte, funcționarea și axios-ul preia datele cu succes.
Dar ori de câte ori încerc să preiau o altă rută din fișierul server.js, cum ar fi
axios.get(example.com/api/credential)
Afișează din nou eroare așa
Nu se poate GET //credential
Revenirea cu dublă oblică // acreditări
singura rută „/” care funcționează de pe server.js prin preluarea example.com/api
fără bara oblică pe proxy, eroarea sa de returnare. nu poate GET /api sau nu poate GET api/acreditare
te rog ajuta-ma.
Mulțumesc anticipat.
Actualizați
Am reparat cu a lui Ivan Răspuns. Acum am o nouă problemă cu acea configurație.
Folosesc socket.io lângă axios. Deci, ori de câte ori încerc să mă conectez prin socket.io
codul meu socket client este ..
import io de la "socket.io-client";
const socket = io ("https://example.com/api");
iar configurația soclului serverului este ..
const io = require("socket.io")(server, {
cors: {
origine: "*",
},
});
Acum, când pagina se încarcă, consola se înregistrează..
GET https://example.com/socket.io?EIO=4&transport=polling&t=O4UTf4l 404 (Negăsit)
te rog ajuta-ma.