在服务器上部署节点并响应应用程序的问题

时间:2019-01-25 17:39:36

标签: node.js reactjs nginx reverse-proxy

已解决 错误来自NODE_HOST,它是本地主机,而不是服务器IP

我无法在服务器上部署我的应用程序,我曾经在本地进行编码,我想将其部署在服务器上。

所以,我在Node.js上使用React和webpack和Express。

服务器

  • 在端口3002上运行
  • 在端口27017上连接到mongodb服务器

反应

使用以下配置与webpack一起部署:

module.exports = webpackMerge(commonConfig, {
  devtool: 'source-map',
  output: {
    path: path.resolve(__dirname, '..', 'dist'),
    publicPath: '/',
    filename: '[name].js',
  },
  plugins: [
    new webpack.DefinePlugin({
      'process.env': {
        NODE_ENV: JSON.stringify('production'),
        NODE_HOST : JSON.stringify(process.env.NODE_HOST || 'localhost'),
        NODE_PORT : JSON.stringify(process.env.NODE_PORT || 8081)
      },
    })
  ],
});

所以基本上我正在运行follow命令来构建我的应用程序:

NODE_PORT=3002 NODE_HOST=localhost yarn build

然后,它生成一个 dist / 文件夹,然后将所有文件从该文件夹复制到nginx html文件夹:

cp -R dist/* /usr/share/nginx/html/

现在,我需要配置nginx,以便它能够使用API​​,这是我的nginx.conf文件

server {
    listen       80 default_server;
    listen       [::]:80 default_server;
    server_name  _;
    root         /usr/share/nginx/html;

    # Load configuration files for the default server block.
    # include /etc/nginx/default.d/*.conf;

    location / {
      try_files $uri /index.html;
    }

    location /api {
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
                        proxy_pass http://localhost:3002;
    }

    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}

然后,当我反应80端口时,我可以看到我的主页,还有一些 GET 请求和 OPTIONS 请求使我得到200,但是当我尝试时进行POST请求,它将返回404。

enter image description here

我没有弄清楚我的配置中缺少什么部分,NODE_HOST和NODE_PORT已正确修复,并且构建正确完成。 我也不知道react-router是否正确固定,基本上路由如下:

<server_ip>/#/login

将重定向到auth进程是否有效。 <server_ip>/#/

注意

  • 我正在使用同一mongodb服务器进行本地开发,并且能够登录。

  • 节点输出没有错误

致谢

0 个答案:

没有答案