繁体   English   中英

如何在Node.js Nginx中允许http请求?

[英]How to allow http requests in Node.js Nginx?

我有一个节点应用程序(使用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版。 以下是安装最新版本的步骤:

  1. 添加NginX PPA sudo add-apt-repository ppa:nginx/stable
    1. 如果add-apt-repository不可用,请执行以下操作:
      1. 对于Ubuntu版本v12.04或更低版本: sudo apt-get install python-software-properties ,然后重新运行第一个命令sudo add-apt-repository ppa:nginx/stable
      2. 对于高于v12.04的Ubuntu版本: sudo apt-get install software-properties-common ,然后重新运行第一个命令sudo add-apt-repository ppa:nginx/stable
  2. 现在运行更新: sudo apt-get update
  3. 最后,安装NginX: sudo apt-get install nginx

接下来,配置NginX:

  1. 导航到/etc/nginx/
  2. cd sites-available
  3. touch YOUR_APP注意:“ YOUR_APP”应替换为您希望调用Node.js应用的任何内容。
  4. 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);

  • 如果您使用的是第一个版本,请在“ YOUR_APP_LOCAL_IP”中填写“ 127.0.0.1”或您在node.js文件中使用的版本,并在“ YOUR_APP_PORT”中填写“ 3000”或您设置的任何端口听。
  • 如果您使用的是第二个版本,请在“ YOUR_APP_LOCAL_IP”中填写“ localhost”
    并在“ YOUR_APP_PORT”中填写“ 3000”或您设置用于监听的任何端口。

就是这样! 确保还守护程序。 您可以为此使用PM2之类的东西。 希望这对像我一样处于类似位置的人有所帮助。

编辑: 是一个很好的链接,总结了所有这些。

暂无
暂无

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

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