使用Nginx在Node.js服务器上反向代理?

时间:2015-09-21 22:46:53

标签: node.js express nginx digital-ocean

好的,我在这里结束了我的智慧。我有一台运行Angular应用程序的Express服务器。使用这个人的教程http://antrikshy.com/blog/deploy-an-expressjs-app-on-digital-ocean-complete-succinct-guide/

我的应用程序运行在我的数字海洋IP地址+端口8000.我已经创建了一个新手服务,因此它始终在运行。我还安装了Nginx,其欢迎屏幕位于我的DO IP地址。所以现在我需要配置nginx,这样我就可以只使用IP地址访问我的网站了。

我尝试做教程中的人做的事情,但是我的工作没有用......我做错了什么?

这是我的设置:
使用WinSCP我将我的应用程序上传到我的服务器上的“/ home / stuffie”,然后我将一个名为“KamiAng.conf”的.conf文件上传到“/ etc / init”文件夹中,如下图所示。

app folder snapshot **注意:app.js文件是启动节点服务器的文件。

以下是KamiAng.conf的内容

# Goes in /etc/init/

description "Keep my site up"

start on startup
start on filesystem and started networking
stop on shutdown
respawn

chdir /home/stuffie/KamiAng
env NODE_ENV=production
env PORT=8000
exec node app.js

这有效!当我输入“sudo start KamiAng”时,即使我关闭了终端,我的网站也会保持IP:8000。就像我上面提到的,我安装了nginx,它在我的IP地址运行。

所以现在我正在尝试使用nginx配置端口。

在“/etc/nginx/conf.d/”文件夹中,我添加了一个名为“kamicon.conf”的文件 这是该文件:

# Goes in /etc/nginx/conf.d/

upstream kamicon {
    server **myIP**:8000;
}

server {
    listen 0.0.0.0:80;
    server_name stuffiestephie.com www.stuffiestephie.com;

    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 Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_set_header X-NginX-Proxy true;
      proxy_pass http://kamicon/;
      proxy_redirect off;
    }
 }

根据我链接的教程,此时我应该可以输入“sudo service nginx reload”并使用“npm start”再次运行我的应用程序。但是,这不起作用。

errors

开始输入“sudo service nginx reload”之后,我输入“npm start”导致错误,因为我的package.json不在“/ home / stuffie /”中,所以我将目录更改为“KamiAng”(其中package.json文件是)并输入“npm start”,我得到上图中看到的错误。

我在这里失去了...我做错了什么?我真的需要这台服务器。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

尝试在KamiAng.conf中将chdir /home/stuffie/KamiAng更改为chdir /home/stuffie/KamiAng/