如何将node项目部署到iis服务中

使用node搭建的服务作为vue项目的代理,然后如何打包后部署到iils上呢,iisnode?

建议参考一下这篇文章。链接:https://blog.csdn.net/weixin_48295713/article/details/122693851

对就是iisnode,这个库的作用就是让node的代码运行在iis上主要代码逻辑:配置

<configuration>
    <system.webServer>
        <handlers>
            <add name="iisnode" path="./app.js" verb="*" modules="iisnode" />
        </handlers>
        <rewrite>
            <rules>
                <rule name="DynamicContent">
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="True" />
                    </conditions>
                    <action type="Rewrite" url="app.js" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>


【以下回答由 GPT 生成】

你可以使用iisnode模块将Vue.js项目使用Node.js代理并部署到IIS服务器上。下面是详细的步骤和指导:

  1. 首先,确保你的机器已经安装了IIS和Node.js。如果没有安装,可以从官方网站下载并安装它们。

  2. 创建一个新的文件夹,用于存放你的Vue.js项目文件。

  3. 在该文件夹中打开命令行,执行以下命令,初始化一个新的Vue.js项目:

vue create .

按照提示选择默认设置或自定义设置,等待项目初始化完成。

  1. 在Vue.js项目的根目录中创建一个名为web.config的文件,并将以下代码添加到该文件中:
<configuration>
    <system.webServer>
        <handlers>
            <add name="iisnode" path="./app.js" verb="*" modules="iisnode" />
        </handlers>
        <rewrite>
            <rules>
                <rule name="DynamicContent">
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="True" />
                    </conditions>
                    <action type="Rewrite" url="app.js" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

这段代码配置了IIS服务器使用iisnode模块处理请求,并将请求重定向到Vue.js项目的入口文件app.js

  1. 在Vue.js项目的根目录中创建一个名为app.js的文件,并将以下代码添加到该文件中:
const express = require('express');
const { createProxyMiddleware } = require('http-proxy-middleware');

const app = express();

// 配置代理
const apiProxy = createProxyMiddleware('/api', {
    target: 'http://api.server', // 修改为你的实际后端API服务器地址
    changeOrigin: true,
    pathRewrite: {
        '^/api': ''
    }
});

app.use('/api', apiProxy);

app.use(express.static('dist'));

app.listen(process.env.PORT);

这段代码创建了一个Express应用,并配置了一个代理,用于将/api开头的请求转发到实际的后端API服务器。你需要将target中的地址修改为你的实际后端API服务器地址。

  1. 在Vue.js项目的根目录中执行以下命令,打包项目:
npm run build

这将生成一个名为dist的文件夹,包含了打包后的Vue.js项目文件。

  1. 将整个Vue.js项目文件夹复制到IIS服务器的网站根目录中,确保web.configapp.js文件与dist文件夹在同一个目录下。

  2. 在IIS管理器中,创建一个新的网站,并将网站的物理路径设置为Vue.js项目文件夹的路径。

  3. 重新启动IIS服务器,确保网站已成功启动。

现在,你的Vue.js项目已经使用Node.js代理并部署到IIS服务器上了。可以通过访问网站的URL来访问你的Vue.js应用程序。如果有需要修改代理配置或其他配置,可以修改app.js文件并重新启动IIS服务器。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^