【发布时间】:2021-08-23 17:57:58
【问题描述】:
我尝试了所有解决方案,但都没有奏效。
我的nodejs网站托管在windows IIS上,使用iisnode,直到今天一切都很好。
还有一点很有意思。假设我的域是出现此错误的 cdn1.site.com。我创建了新的 IIS 网站,物理路径相同,但域名不同:cdn2.site.com
同样的请求在 cdn1.site.com 上出现错误,但在 cdn2.site.com 上却没有!!
第一个域有什么问题!?
Domains use SSL that creates with Let's Encrypt
server.js 的主要部分:
var app = express();
const server = http.createServer(app);
function shouldCompress (req, res) {
if (req.headers['x-no-compression']) {
return false
}
return compression.filter(req, res)
}
app.use(compression({filter: shouldCompress}))
app.use(requestIp.mw());
app.use(helmet());
app.use(express.json({limit: '50mb'}));
app.use(express.text({limit: '50mb'}));
app.use(express.urlencoded({limit: '50mb', extended: true}));
app.use(cookieParser());
server.listen(process.env.PORT || 2000);
Web.config:
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="GET,HEAD,PUT,PATCH,POST,DELETE,OPTIONS" />
<add name="Access-Control-Allow-Headers" value="Origin, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version, X-Response-Time, X-PINGOTHER, X-CSRF-Token, csrfToken, $mt-oot-ti-kcuf, $mt-ti-kcu" />
</customHeaders>
</httpProtocol>
<iisnode enableXFF="true" nodeProcessCommandLine="C:\Program Files\nodejs\node.exe --trace-deprecation" />
<httpErrors existingResponse="PassThrough" />
<handlers>
<add name="iisnode" path="server.js" verb="*" modules="iisnode" />
</handlers>
<rewrite>
<rules>
<rule name="LogFile" patternSyntax="ECMAScript" stopProcessing="true">
<match url="iisnode" />
</rule>
<rule name="NodeInspector" patternSyntax="ECMAScript" stopProcessing="true">
<match url="^server.js\/debug[\/]?" />
</rule>
<rule name="StaticContent">
<action type="Rewrite" url="public{{REQUEST_URI}}" />
</rule>
<rule name="DynamicContent">
<conditions>
<add input="{{REQUEST_FILENAME}}" matchType="IsFile" negate="True" />
</conditions>
<action type="Rewrite" url="server.js" />
</rule>
</rules>
</rewrite>
<urlCompression doStaticCompression="true" doDynamicCompression="true" />
</system.webServer>
</configuration>
【问题讨论】:
-
这里同样的错误可以作为参考:https://stackoverflow.com/a/63675264/13336642.
标签: javascript node.js express iis iisnode