使用IIS作为反向代理的Node.js应用程序的HTTPS重定向

时间:2019-08-27 15:34:34

标签: node.js ssl iis https reverse-proxy

我已经在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"
               >

0 个答案:

没有答案