2017-09-19 115 views
1

我有一些静态文件,我已经可以访问了,而且我已经有了一个API,已经在数字海洋。NodeJS API的Nginx配置

但我有一些配置NGINX同时访问两个套件。如果我的API工作,静态文件不会。反之亦然;

我的api运行在5000端口上,我想通过IP地址访问该站点和api。

请帮忙!

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

    root /var/www/html; 

    server_name _; 

    location/{ 

     try_files $uri $uri/ =404; 

    } 

} 

server { 

    location/{ 
     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; 
    } 
} 

回答

1

如果正在从相同的IP地址和端口访问这两种服务,那么你需要使用一个server块。理想情况下,你将在API进入一个独特的URI,例如:

location/{ 
    try_files $uri $uri/ =404; 
} 
location /api/ { 
    proxy_pass ...; 
    ... 
} 

如果你必须使用一个重叠的URI空间,静态文件和API,你可以使用try_files检查静态的存在文件优先:

location/{ 
    try_files $uri $uri/ @proxy; 
} 
location @proxy { 
    proxy_pass ...; 
    ... 
} 

有关更多信息,请参见this document