1

我有一个 Node 进程,它运行在127.0.0.1:1337

我已经下载了 Nginx,并且只有一个名为nginx.confinside的conf/文件。我使用的是Windows 7。每个人都说没有sites-enabled或目录。sites-available

当我将 URL 设为“www.mysite.com”或“mysite”时,它应该指向节点进程的 IP 地址。但是每当我尝试点击“www.mysite.com”时,我都会从浏览器中收到“找不到网址”错误。我想将它重定向到我的节点进程,但127.0.0.1:1337不应显示在 URL 栏中。

如何设置 Nginx 以指向我的 Node.jspublic/文件夹。html我应该在我的 Nginx 安装文件夹中安装 Node.js吗?

4

2 回答 2

0

首先,1337 端口是一个特殊端口,如果您不完全清楚自己在做什么,则不应使用。从严重的烧伤到自发的身体解体,可能会产生各种危险。你已经被警告过了。

话虽如此,您必须像 in 一样单独运行节点,C:\>node myserver.js并使用 nginx 中的proxy_pass指令将 nginx 流量代理到您的节点脚本正在侦听的端口。查找nginx server_name nginx proxy_passsimple http server in node.js在您最喜欢的搜索引擎中。

这应该让你开始。

于 2013-10-17T10:34:50.420 回答
0

没有像节点进程IP这样的东西。IP 地址是您机器网络接口的地址,进程分配一个端口(在所有网络接口或特定网络接口)。

要在地址栏中“隐藏”服务器 IP 地址,您需要配置 Windows 以将您的主机名解析为 localhost IP:如何从同一网络上的另一台计算机连接到此 localhost?- 这个答案对你的情况来说太宽泛了,但是改变文件“hosts”通常就足够了。

虽然,您不能隐藏端口,除非您使用 HTTP 协议的默认端口(即 80)。

更新:配置名称解析会将请求转发到 nginx 进程。但是 nginx 应该将请求转发到 node.js 进程。这是示例 nginx conf 文件:

server {
    server_name app1;

    # forwarding
    location / {
        proxy_pass http://127.0.0.1:3001;

        proxy_redirect off;

        proxy_http_version 1.1;

        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_read_timeout 300s;
    }
}

替换3001为您的 node.js 进程的端口,以及app1您的应用程序域。

于 2014-05-16T23:25:48.287 回答