如何用IIS成功运行node服务器?

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

我有一个网络应用程序,它有 ISS-10,运行于 wwww.mymindmapper.com 和听上 port:80. 我有两个简单的页面(login.html & register.html). 下面是它的样子。https:/imgur.comagb9KAsj。

我的主要目的是想弄清楚如何创建一个Node JS服务器(port: 81)与我在IIS上的webApp一起使用。port: 80. 这是我的 app.js 文件。

//USE `nodemon scripts/server.js` on Terminal to refresh Node Server on File Save.
//USE 'pm2 start scripts/server.js' on Terminal to start pm2 for IIS ??????????????????

//Import Node JS modules
const express = require("express");
const morgan = require("morgan"); 
const mysql = require("mysql");

//Create a new instance of express()
const app = express();

//GET INFORMATION ABOUT THE SERVER REQUESTS (OS, Browser, time, Internal Errors, Status Codes)
app.use(morgan('short')); //'short', 'combined'

//Require files from folder public     (THIS CONTAINS ALL .html files inc. login.html and register.html)
app.use(express.static('./public'));

//Listen on PORT:80 with a callback function
app.listen(81, ()=>{
    console.log("Server running on port 81");
});

请注意,当我在Visual Studio代码上通过终端提出请求时 一切都能如期进行。可以从我的数据库中添加和删除数据。(我使用 XAMPP - Apache监听 port:80 和mMySQL监听 port:3306).

我曾在某处读到过,这可以通过使用一个 Reverse Proxy 在IIS上。然而,这似乎并不工作。另外,当反向代理配置完成后,当我刷新页面时,会出现以下错误。

Reverse proxy configuration

enter image description here

javascript node.js port reverse-proxy iis-10
1个回答
1
投票

兄弟,不需要设置出站规则,你上面写的设置就可以把IIS请求转发到node服务器了。enter image description here 在Application Request Routing中,启用代理功能。enter image description here 索引.js

var express=require('express');
var app=express();
app.get('/',function(req,res){
    res.send('Hello World');
})
app.listen(3000,function(){
    console.log("Example app listening on port 3000!");
})

我的IIS站点绑定。enter image description here 结果。enter image description here 添加逆向代理规则后,会生成一个 webconfig 文件,内容如下。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="ReverseProxyInboundRule1" stopProcessing="true">
                    <match url="(.*)" />
                    <action type="Rewrite" url="http://localhost:3000/{R:1}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

此外,如果您在网站上创建了一个服务器群,那么您可以在 server farms请将其删除或添加本地IP作为默认服务器,否则会出现无法连接服务器的错误。否则,会出现无法连接服务器的错误。如果问题仍然存在,请随时告诉我。

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