Puncte:0

CORS și Nginx în fața trecerii apache reverse proxy/proxy nu funcționează pentru a accesa serverul API

drapel id

Î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

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.