我有一个Nest.js应用程序,我想在Windows IIS服务器上运行。我已经安装了iisnode模块github.com/tjanczuk/iisnode,并在IIS上创建了一个新的网站和应用程序
我能够调用我的API端点,但收到以下消息:
警告:由于安全性和可用性问题,Buffer()已弃用。请改用Buffer.alloc()、Buffer.allocUnsafe()或Buffer.from()方法。
问题是我没有在我的代码中使用Buffer(),它只在我的项目中使用的一些节点模块中使用。
在我花更多的时间解决这个过时的警告之前,我只是想确定一下,在IIS上运行nest.js应用程序是否可以使用iisnode?
非常感谢你的帮助
这是我的web.config文件
<configuration>
<system.webServer>
<!-- indicates that the hello.js file is a node.js application
to be handled by the iisnode module -->
<handlers>
<add name="iisnode" path="main.js" verb="*" modules="iisnode" />
</handlers>
<rewrite>
<rules>
<!-- Do not interfere with requests for node-inspector debugging -->
<rule name="sendToNode">
<match url="/*" />
<action type="Rewrite" url="main.js" />
</rule>
</rules>
</rewrite>
...
</system.webServer>
</configuration>
'''
3条答案
按热度按时间ccrfmcuu1#
从零开始
Install urlrewrite fist if not
在这里,我们将在iis* 服务器中创建一个 hello world 项目和 *host
所以安装nest globaly你的喜好我用这种方法
创建新的Nest项目
然后通过this移动到该文件夹=〉
在这里我把 3000 端口改为 4444 你可以根据自己的意愿进行更改
只需构建您的项目,现在 dist 文件夹已创建
现在安装pm2节点包这个包作为后台服务pm2link
现在您可以检查链接http://localhost:4444/
现在打开iis(互联网信息服务)
现在点击URL重写将端口4445(IIS托管端口)重定向到4444(项目运行端口)
选择反向代理
添加反向代理规则
现在检查您的浏览器工作在两个端口
web.config可能会喜欢上面的配置
kqlmhetl2#
如果有人仍然在寻找如何在IIS上托管NestJs应用程序的答案,您必须使用
URLRewrite
和PM2(不需要IISNode):在IIS中安装
URLRewrite
模块。安装PM2
思路是通过PM2运行NestJs应用,然后在IIS中设置反向代理,将所有入站请求重定向到正在运行的NestJS应用。
首先确保您的应用程序正在通过PM2运行。
然后,将NestJS应用程序配置为在IIS中选择的端口上运行。
然后,在
web.config
中设置一个反向代理设置,它重定向到NestJs应用程序运行的实际端口。就这样,您的NestJs应用程序现在可以在IIS上成功运行了。
请参考这个精彩的link以获取更多信息。
fkaflof63#
1.为了纠正警告:由于安全性和可用性问题,Buffer()已弃用。请改用Buffer.alloc()、Buffer.allocUnsafe()或Buffer.from()方法。
在“C:\Program Files\iisnode”下,修改第169行的“interceptor.js”文件。
这将解决这个问题所造成的iisnode本身。
1.仅通过iisnode启动Nestjs应用(即不使用反向代理)。
首先,确保安装了“URLRewrite”,并且您的“web.config”文件如下:
然后,修改你的“main.js”文件如下:
注意process.env.PORT的使用。