在 IIS 服务器中部署 NodeJS 应用程序

问题描述 投票:0回答:1

我第一次致力于以 Node JS 作为后端部署 Angular 应用程序。我正在寻找专家对某些问题的建议。 NodeJS 版本 20 和 Angular 17

  1. 要部署 NodeJS 应用程序,我看到两种方法,使用 IISNode 和实现反向代理。但我读到 IISNode 不再获得支持,这是否意味着我根本无法使用 IISNode?

  2. 如果我可以使用,那么我可以使用IISNode部署最新版本的NodeJS。会支持吗?我看不到任何有关此的信息。

  3. 如果我必须使用反向代理,这到底意味着什么? NodeJS 应用程序将在服务器本地运行,所有请求都将重定向到它?有什么优点和缺点?

  4. 我在我的应用程序中使用了express中间件。在IIS服务器上部署需要额外的东西吗?

我可以看到更多部署过程的示例,但没有提及要遵循的正确方法。有人可以帮忙吗?我希望这篇文章可以成为所有寻找这些答案的人的第一站。

node.js express iis reverse-proxy iisnode
1个回答
0
投票

请在下面找到您问题的答案:

1)要部署 NodeJS 应用程序,我看到两种方法,使用 IISNode 和实现反向代理。但我读到 IISNode 不再获得支持,这是否意味着我根本无法使用 IISNode?

--> 对于最新版本的节点应用程序,建议使用反向代理而不是使用 iisnode,因为它存在一些兼容性问题。

2)如果我可以使用,那么我可以使用IISNode部署最新版本的NodeJS。会支持吗?我看不到任何有关此的信息。

--> 作为之前答案中的共享,建议使用反向代理而不是具有最新应用程序的 iiisnode

3)如果我必须使用反向代理,这到底意味着什么? NodeJS 应用程序将在服务器本地运行,所有请求都将重定向到它?会有什么优点和缺点? --> 反向代理设置意味着 IIS 充当前端服务器,处理来自客户端的 HTTP/HTTPS 请求。它将帮助将请求转发到本地运行的 Node js 应用程序。 • 优点: 1. 将 HTTPS 处理卸载到 IIS,从而简化您的 Node.js 应用程序。 2. IIS可以处理静态文件,减少Node.js的负载。 3. IIS 提供附加层,如 IP 过滤、身份验证等。 • 缺点: 1.需要设置url重写规则来重定向请求 2. 您可能会遇到一些性能问题,因为代理正在处理您的请求。

4)我在我的应用程序中使用了express中间件。在IIS服务器上部署需要额外的东西吗?

--> 您只需要使用 pm2 命令来为节点应用程序提供服务,无需额外配置。

以下是使用 IIS 中的 Angular 应用程序为 Node JS 提供服务的步骤:

1)我假设你已经使用 Angular 配置了 Node js

2)您可以使用命令构建角度应用程序:ng build --prod

3)在iis中创建网站,并使用dist文件夹作为网站根路径

4)安装pm2命令: npm install -g pm2

之后启动服务器:

pm2启动server.js

5)进入iis Angular网站并添加规则:

<system.webServer>
        <rewrite>
            <rules>
                <rule name="ReverseProxyInboundRule1" stopProcessing="true">
                    <match url="(.*)" />
                    <action type="Rewrite" url="http://localhost:241/{R:1}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>

重写的 url 将是您的 Node js 应用程序 url,您将通过运行 pm2 命令获得它

© www.soinside.com 2019 - 2024. All rights reserved.