NodeJS API的Nginx配置

时间:2017-09-19 11:03:55

标签: node.js api nginx

我有一些静态文件,我已经可以访问了,而且我已经在数字海洋上有一个api。

但我正在配置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 个答案:

答案 0 :(得分:1)

如果从同一IP地址和端口访问两个服务,则需要使用一个server块。理想情况下,您可以将API移动到唯一的URI中,例如:

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

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

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

有关详情,请参阅this document