繁体   English   中英

Nginx Nodejs Rest API端点返回404

[英]Nginx Nodejs Rest API Endpoints returning 404

我正在尝试为本地网络设置本地服务器。 React应用程序运行良好,可以从网络上的另一台计算机进行访问。 问题是,我创建的API端点返回404错误(但没有返回Nginx 404)。 它被视为常规的Reactjs应用程序内部页面。

这是我的Nginx conf文件:

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    root /var/www/build;

    index index.html index.htm index.nginx-debian.html;

    server_name _;

    # This is the react app
    location / {
            try_files $uri /index.html;
    }

    # This is the restful api
    location /api {
            proxy_redirect       off;
            default_type         application/json;
            proxy_pass_header    Server;
            proxy_set_header     X-Real-IP $remote_addr;
            proxy_set_header     X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header     X-Scheme $scheme;
            proxy_set_header     Content-Type: application/json;
            proxy_set_header     Host $host;
            proxy_set_header     X-NginX-Proxy true;
            proxy_connect_timeout   5;
            proxy_read_timeout      240;
            proxy_intercept_errors  on;
            proxy_pass           http://localhost:5000;
    }
}

这是我的React应用程序`package.json:

{
    "name": "React APP",
    "version": "0.1.0",
    "private": true,
    "dependencies": {
        ...
    },
    "scripts": {
        ...
    },
    "devDependencies": { 
        ...
    },
    "homepage": "."
}

从我的本地主机机器上,我可以访问http://localhost/ ,它向我显示我的ReactApp很好,但是, http://localhost/api/v1/及其所有端点均未正确映射。 但是,如果我访问http://localhost:5000 ,我也可以访问我的api。

有人可以告诉我我做错了什么吗?

这些应用程序运行在不同的端口上,React Application使用80,NodeJS服务器使用5000。 在conf.d文件夹下为两个应用程序有两个单独的配置,即下面的react.conf

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    root /var/www/build;

    index index.html index.htm index.nginx-debian.html;

    server_name _;

    # This is the react app
    location / {
            try_files $uri /index.html;
    }
}

对于NodeJS端点,您可以拥有nodejs.conf

server {
            listen  80 default_server;
            server_name   nodeapi.com;
            # Redirect all HTTP to HTTPS
            location / {
                        proxy_redirect       off;
                        default_type         application/json;
                        proxy_pass_header    Server;
                        proxy_set_header     X-Real-IP $remote_addr;
                        proxy_set_header     X-Forwarded-For $proxy_a dd_x_forwarded_for;
                        proxy_set_header     X-Scheme $scheme;
                        proxy_set_header     Content-Type: application/json;
                        proxy_set_header     Host $host;
                        proxy_set_header     X-NginX-Proxy true;
                        proxy_connect_timeout   5;
                        proxy_read_timeout      240;
                        proxy_intercept_errors  on;
                        proxy_pass         "http://localhost:5000";
               }
        }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM