最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

Nginx的休息的NodeJS API端点返回404

IT培训 admin 2浏览 0评论

Nginx的休息的NodeJS API端点返回404

我想设置为本地网络中使用本地服务器。该阵营的应用工作正常,可从网络上的另一台计算机的访问。问题是,我创建的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;
    }
}

这里是我的应用程序做出反应`的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就好了。

谁能告诉我,我做错了什么?

回答如下:

这些应用程序在不同的端口上运行,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;
            # 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";
               }
        }

Nginx的休息的NodeJS API端点返回404

我想设置为本地网络中使用本地服务器。该阵营的应用工作正常,可从网络上的另一台计算机的访问。问题是,我创建的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;
    }
}

这里是我的应用程序做出反应`的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就好了。

谁能告诉我,我做错了什么?

回答如下:

这些应用程序在不同的端口上运行,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;
            # 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";
               }
        }
发布评论

评论列表 (0)

  1. 暂无评论