平均堆栈安装在端口80或IIS下方



我有一个平均堆栈应用程序,该应用程序现在可以在节点JS和端口3000上使用。我有一个Windows Server 2016,需要部署.NET应用程序,因此我需要IIS。我无法在端口80上运行两个Web服务器,但是我不希望用户被迫输入运行均值应用程序的端口。我尝试使用IISNODE,但没有成功,我还阅读了有关反向代理,以将端口80上的请求重定向到另一个端口。两种解决方案都可能是有效的,但是,在花其他时间在错误的方向上之前,我问在这种情况下最好的做法是什么。

更新:向前迈出一点一步。我现在可以访问应用程序的加载页面,但是该应用程序无法找到我的bundle.js(由WebPack创建的软件包(。

module.exports = webpackMerge.smart(commonConfig, {
    entry: {
        'app': './assets/app/main.aot.ts'
    },
    output: {
        path: path.resolve(__dirname + '/public/js/app'),
        filename: 'bundle.js',
        publicPath: '/js/app/',
        chunkFilename: '[id].[hash].chunk.js'
    },

我的web.config是:

<configuration>
   <system.webServer>
     <handlers>
       <add name="iisnode" path="start.js" verb="*" modules="iisnode" />
     </handlers>
     <rewrite>
       <rules>
         <rule name="tep">
           <match url="/*" />
           <action type="Rewrite" url="start.js" />
         </rule>
       </rules>
     </rewrite>
     <security>
       <requestFiltering>
         <hiddenSegments>
           <add segment="node_modules" />
         </hiddenSegments>
       </requestFiltering>
     </security> 
   </system.webServer>
 </configuration>

start.js文件的提取:

var app = require('./app');
var debug = require('debug')('node-rest:server');
var http = require('http');
var port = normalizePort(process.env.PORT || '3000');
app.set('port', port);
var server = http.createServer(app);
server.listen(port);
server.on('error', onError);
server.on('listening', onListening);

和视图(HBS(:

<!DOCTYPE html>
<html>
<head>
    <base href="/tep">
    <title>Tennis Events Pro</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
</head>
<body>
<tep-app>Loading...</tep-app>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="/tep/bundle.js"></script>
</body>
</html>

我研究了调整配置和路径,没有结果...

谢谢

最大

for iis的ARR模块的反向代理将最好的方法来实现所需的目标。

  1. 您需要安装IIS的URL重写和ARR模块
  2. 启用arr。在Application Request Routing页面上,选择Enable proxy
  3. 在IIS经理中创建网站
  4. 在此网站文件夹中创建Web.config

    <?xml version="1.0" encoding="UTF-8"?><configuration>

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

    </configuration>

之后,IIS将您的请求委托到端口3000

相关内容

  • 没有找到相关文章

最新更新