În prezent, am o aplicație Angular care își primește datele de la un backend Symfony. La dezvoltare, am folosit ng servi
sistem proxy server de dezvoltare pentru redirecționarea /api
, /oauth-token
și /mass-media
rute către serverul de backend și acest lucru a funcționat bine.
Acum că vreau să implementez aplicația pe un server web, am configurat un server Nginx care servește fișierele statice generate de aplicația Angular construită. Deoarece serverul de dezvoltare nu mai este acolo pentru a trimite cererile prin proxy, trebuie să fac acest lucru prin fișierele de configurare ale lui Nginx, astfel încât să am un proxy invers funcțional.
Ceea ce am nevoie pur și simplu este că dacă cer ceva de genul GET http://localhost/api/products/1
, această solicitare devine proxy GET http://localhost:81/api/products/1
. Acest lucru ar trebui să fie același pentru toate celelalte metode de solicitare: POST, PUT, PATCH etc.
Problema este că nu pot să scriu un fișier conf care să se potrivească nevoilor mele pentru acest caz de utilizare. Cel mai bine primesc este un răspuns 302 sau 405.
Iată fișierul de configurare pe care îl am în prezent:
Server {
nume_server gazdă locală;
rădăcină /var/www/webapp;
Locație / {
try_files $uri $uri/ /index.html;
}
locație ~ ^/(?:oauth-token|api|media)/ {
proxy_pass http://localhost:81;
}
}
Backend-ul este găzduit pe același server și instanță de nginx decât frontend-ul, dar pe un port diferit (portul 81 în loc de 80).
Am încercat să-mi separ blocul de locație în 3 blocuri separate pentru fiecare rută în cazul în care expresia regex sau trecerea proxy-ului a fost greșită, dar obțin aceleași rezultate:
locație /api/ {
proxy_pass http://localhost:81/api/;
}
locație /oauth-token/ {
proxy_pass http://localhost:81/oauth-token/;
}
De asemenea, am încercat să elimin barele oblice de la sfârșitul adresei URL de trecere proxy pentru a vedea dacă aceasta a fost problema, fără niciun rezultat.
Am încercat să urmez sfaturile pe care le-am găsit în alte postări despre Server Fault, dar din păcate niciunul nu a funcționat pentru mine.
Mă puteți ajuta să configurez acest fișier astfel încât aceste solicitări API să fie trimise proxy către serverul meu backend? Mulțumiri.