Încerc să configurez un proxy invers pentru serverul meu api, dar obțin o pagină de eroare 404.
Context:
În timp ce configurez o aplicație react.js și încerc să găsesc o soluție la problema CORS, am decis să folosesc proxy invers (proxy pass) cu nginx pentru a invoca serverul API în interior și pentru a păcăli browserul să creadă că API-ul este pe acelasi domeniu.
Aceasta este configurația pe care am dorit-o:
https://example.com indică directorul site-ului web
https://example.com/api apelează url-ul API ascultând intern http://127.0.0.1:1234 prin reverse proxy nginx
Folosesc hestia cp care are nginx în fața apache ca proxy invers.
Problemă
Dacă folosesc lynx pentru a suna direct http://127.0.0.1:1234, primesc răspunsul corect de la serverul meu api.
Cu toate acestea, atunci când îl utilizați prin transmiterea proxy pe adresa URL https://example.com/api, primesc o pagină de eroare 404.
Fișierele de configurare Nginx
Aceasta este configurarea mea nginx.ssl.conf pentru example.com
locație /api/ {
proxy_pass http://127.0.0.1:1234;
access_log /var/log/apache2/domains/example.com-api.log personalizat;
access_log /var/log/apache2/domains/example.com-api.bytes octeți;
}
Aceasta este configurarea mea nginx.conf pentru domeniul meu api.com, care ascultă pe 127.0.0.1, portul 1234
Server {
asculta 127.0.0.1:1234;
nume_server 127.0.0.1;
Locație / {
proxy_pass http://10.0.10.55:8080;
locație ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|tif|tiff|css|js|htm|html|ttf|otf|webp|woff|txt|csv|rtf|doc |docx|xls|xlsx|ppt|pptx|odf|odp|ods|odt|pdf|psd|ai|eot|eps|ps|zip|tar|tgz|gz|rar|bz2|7z|aac|m4a|mp3 |mp4|ogg|wav|wma|3gp|avi|flv|m4v|mkv|mov|mpeg|mpg|wmv|exe|iso|dmg|swf)$ {
root /home/user/web/api.com/public_html;
access_log /var/log/apache2/domains/api.com.log combinat;
access_log /var/log/apache2/domains/api.com.bytes octeți;
expira max;
try_files $uri @fallback;
}
} locație /eroare/ {
alias /home/user/web/api.com/document_errors/;
}
locație @fallback {
proxy_pass http://10.0.10.55:8080;
}
locație ~ /\.ht {return 404;}
locație ~ /\.svn/ {return 404;}
locație ~ /\.git/ {return 404;}
locație ~ /\.hg/ {return 404;}
locație ~ /\.bzr/ {return 404;} }
Mă poate ajuta cineva să depanez sau să remediez acest lucru?
Nu pot vedea nimic care să iasă în evidență în jurnale, dar probabil nu știu ce să caute.
Se pare că apelul prin trecerea proxy nginx nu ajunge la apache.
Am citit că lynx apelează apache direct, dacă omit nginx dacă folosesc combinația 127.0.0.1:1234 url/port.
Multe mulțumiri in avans