我有一个平均堆栈应用程序,该应用程序现在可以在节点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模块的反向代理将最好的方法来实现所需的目标。
- 您需要安装IIS的URL重写和ARR模块
- 启用arr。在
Application Request Routing
页面上,选择Enable proxy
- 在IIS经理中创建网站
-
在此网站文件夹中创建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