我有一个节点应用程序(使用PM2)在运行Ubuntu的DigitalOcean Droplet上的http://127.0.0.1:3000上进行监听。但是,我有一个问题。一切正常,除了我的所有http帖子请求均收到404 Not Found错误。我不知道为什么。
这是我的Nginx conf文件的样子:
server {
listen 0.0.0.0:80;
root /var/www/app_folder;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:3000;
}
}
它加载一切正常。静态图片,CSS,html,甚至是javascript文件。但是,我所有传出的HTTP帖子都是404。
任何帮助将不胜感激。提前谢谢。
编辑:我的node.js文件就像其他任何文件一样。这是总结。
app.post('/someURL', function(req, res) {...}
app.listen(3000, "127.0.0.1");
所以我解决了!
我在DigitalOcean Droplet上运行Ubuntu 14.04。问题是,当我致电时sudo apt-get install nginx
,它将自动安装NginX版本1.4.6。但是,最新的NginX稳定版本是1.8.0版。以下是安装最新版本的步骤:
sudo add-apt-repository ppa:nginx/stable
add-apt-repository
不可用,请执行以下操作:
sudo apt-get install python-software-properties
,然后重新运行第一个命令sudo add-apt-repository ppa:nginx/stable
sudo apt-get install software-properties-common
,然后重新运行第一个命令sudo add-apt-repository ppa:nginx/stable
sudo apt-get update
sudo apt-get install nginx
接下来,配置NginX:
/etc/nginx/
cd sites-available
touch YOUR_APP
注意:“ YOUR_APP”应替换为您希望调用Node.js应用的任何内容。sudo vi YOUR_APP
并配置您的Web服务器以正确收听。这是Web服务器代码的示例:
server {
server_name your.domain.com;
listen 80;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://YOUR_APP_LOCAL_IP:YOUR_APP_PORT;
proxy_redirect off;
}
}
在您的Node.js文件中,将出现类似于以下内容的行app.listen(3000, "127.0.0.1");
:app.listen(3000);
就是这样!确保还守护程序。您可以为此使用PM2之类的东西。希望这对像我一样处于类似位置的人有所帮助。
编辑:这是一个很好的链接,总结了所有这些。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句