IIS和节点在同一Windows服务器上并排

时间:2018-08-27 05:57:53

标签: node.js iis deployment

我有一个应用程序,该应用程序的Angular上具有UI,而Nodejs上的Web API则部署在以下Web服务器上(在同一Windows服务器上说“ server1”)。 如下所示在服务器上配置了多个IP

  1. UI-IIS,使用端口80侦听 10.250.18.51 server1
  2. API-NodeJs,使用端口80监听 10.250.18.52 server1 。最终将使用Nginx将请求转发到nodejs

问题陈述

即使它们都侦听不同的IP,也无法在端口80上同时运行Nodejs和IIS

  1. IIS错误:该端口已被另一个进程使用
  2. NodeJs错误:EACCES,权限被拒绝

我想念什么吗?

致谢

1 个答案:

答案 0 :(得分:0)

尽管它们在不同的IP上运行,但是它们在同一台计算机上运行,​​因此在同一台计算机上,您不能在同一节点上运行两个进程。

使用nginx时,最好的解决方案是为节点进程创建反向代理。

为两个进程使用不同的域,并使用Nginx如下转发它们:

server {
        listen 80 default_server;
        listen [::]:80 default_server;

        server_name www.xxx.me xxx.me;

        # your IIS config for nginx
}

# slack
server {
    listen 80;

    server_name xxx.xxx.me;

    location / {
        proxy_pass http://localhost:7777;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
     }
}

以上代码段假设您的节点进程正在7777上运行