2017-06-21 2 views
0

J'essaye de configurer un serveur exprès avec NGINX comme proxy inverse. NGINX pour servir les fichiers statiques, et Express pour le contenu dynamique.Comment configurer les routes avec Express et NGINX?

Problème: Les travaux normaux de liaison de racine (website.com), mais quand je navigue à (website.com/api), je reçois un 404 de Nginx


Ceci est mon server.js:

var express = require("express"); 
var app = express(); 
var server = app.listen(process.env.PORT || 5000); 

console.log("Server Running"); 

app.get("/",function(req,res){res.send("HOME PAGE")}); 

app.get("/api", function(req, res) { 
    res.send('API PAGE'); 
}); 

C'est mon fichier NGINX Config:

server { 
    listen 80 default_server; 
    listen [::]:80 default_server; 


    server_name website.com www.website.com; 

    location ~ ^/(assets/|images/|img/|javascript/|js/|css/|stylesheets/|flash/|media/|static/|robots.txt|humans.txt|favicon.ico) { 
    root /home/foobar/public; #this is where my static files reside 
    access_log off; 
    expires 24h; 
    } 

    location/{ 
     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     proxy_redirect off; 
     proxy_pass http://localhost:5000; 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection 'upgrade'; 
     proxy_set_header Host $host; 
     proxy_cache_bypass $http_upgrade; 

     try_files $uri $uri/ =404; 
    } 
} 

Répondre

2

Essayez de supprimer cette ligne:

try_files $uri $uri/ =404; 

Avec cette directive nginx essaie de servir un fichier statique (ou le répertoire), et retourne 404 s'il n'y a pas un tel fichier.