我已经在Node.js中建立了清单门户,并且在Windows Server 2012计算机上很难通过IIS重定向到HTTPS。 HTTP访问工作正常,但是我尝试过的每个HTTP到HTTPS重定向解决方案都无效。以下是有关当前设置和尝试解决方案的一些信息。
当前设置: ARR_Server_Proxy-(匹配模式-通配符-*)-(操作类型-重写-URL http://localhost:8080/ {R:0})
站点绑定-具有SSL证书的https端口443
过去的设置尝试过: 具有URL重写的相同ARR代理-入站-HTTPS重定向-(匹配模式(。*))-(条件{HTTPS}匹配模式^ OFF $(也尝试“关闭”和“开启”)))-(操作类型重定向- URL https:// {HTTP_HOST} {REQUEST_URI}也尝试使用具有永久(301)重定向类型的https:// {HTTP_HOST} / {R:1})
具有redirectToHTTPS node.js库的相同ARR代理。这给出了ERR_TOO_MANY_REDIRECTS
每次更改设置后,都会进行iisreset和检查以确认web.config文件已更改。
以下是服务器入口文件index.js。
require('dotenv').config()
const express = require('express')
const bodyParser = require('body-parser')
const cookieParser = require('cookie-parser')
const path = require('path')
const ejsLint = require('ejs-lint')
// const redirectToHTTPS = require('express-http-to-https').redirectToHTTPS
const routes = require('./routes/index')
const Order = require('./models/order')
const User = require('./models/user')
const app = express()
// app.use(redirectToHTTPS())
app.use(cookieParser())
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
app.use(express.static(__dirname + '/public'))
app.use('/', routes)
const port = process.env.PORT || 8080
app.set('port', port)
app.set('view engine', 'ejs')
app.set('views', path.join(__dirname, 'views'))
app.listen(port, () => {
console.log('Server listening on port ' + port)
})
Order.sync()
User.sync()
module.exports = { app, path }
这是最近失败的请求日志元素:
<failedRequest url="https://portal.domain.com:443/"
siteId="2"
appPoolId="DefaultAppPool"
processId="3756"
verb="GET"
remoteUserName=""
userName=""
tokenUserName="NT AUTHORITY\IUSR"
authenticationType="anonymous"
activityId="{8000002D-0000-FC00-B63F-84710C7967BB}"
failureReason="STATUS_CODE"
statusCode="502.3"
triggerStatusCode="502.3"
timeTaken="16"
xmlns:freb="http://schemas.microsoft.com/win/2006/06/iis/freb"
>