已解决 错误来自NODE_HOST,它是本地主机,而不是服务器IP
我无法在服务器上部署我的应用程序,我曾经在本地进行编码,我想将其部署在服务器上。
所以,我在Node.js上使用React和webpack和Express。
服务器:
反应:
使用以下配置与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。
我没有弄清楚我的配置中缺少什么部分,NODE_HOST和NODE_PORT已正确修复,并且构建正确完成。 我也不知道react-router是否正确固定,基本上路由如下:
<server_ip>/#/login
将重定向到auth进程是否有效。
<server_ip>/#/
注意
我正在使用同一mongodb服务器进行本地开发,并且能够登录。
节点输出没有错误
致谢