2017-08-14 3 views
0

J'ai un front-end reaffecté par nginx. montré ici:Le serveur principal de l'API Express reçoit les demandes mais ne répond pas, Nginx

server { 
    listen 80 default_server; 
    server_name website.* www.website.*; 
    root /home/developer/website/frontend/build; 

    location/{ 
     try_files $uri /index.html; 
    } 

    location /api { 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_pass http://127.0.0.1:4000; 
    } 

} 

En outre, j'ai une deuxième application exprès recevant des demandes à 127.0.0.1:4000. Les appels frontaux vont chercher à 'api/quelque chose' et l'application express reçoit cela et le gère mais ne répond pas, les erreurs côté client avec 504 (Gateway Time-out). Des idées?

Répondre

1

Il vous manque la directive de serveur amont. Essayez ceci

upstream api { 
    server 127.0.0.1:4000; 
} 

# remove www from the url 
server { 
    listen 80; 
    server_name www.website.com; 
    return 301 $scheme://website.com$request_uri; 
} 

server { 
    listen 0.0.0.0:80; 
    server_name website.com website; 
    error_log /var/log/nginx/website.com-error.log error; 
    access_log /var/log/nginx/website.log; 

    # pass the request to the node.js server with the correct headers 
    location /api/ { 
     proxy_pass http://api/; 
     proxy_ignore_headers X-Accel-Expires Expires Cache-Control; 
     proxy_ignore_headers Set-Cookie; 
     proxy_hide_header Set-Cookie; 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_set_header Host $http_host; 
     proxy_redirect off; 
     proxy_set_header X-NginX-Proxy true; 
    } 
} 
+0

J'ai défini la directive amont et remplacé ma position par celle que vous avez fournie, mais j'ai toujours le même résultat. Est-ce que mon utilisation de JWT pourrait l'affecter? – Athomas1

+0

Peut-être un problème avec 'www' dans l'URL. Essayez la configuration mise à jour –

+0

Ça a marché! Merci, j'ai essayé de comprendre cela pendant un moment. – Athomas1