设定
客户端 Nginx负载均衡器 IIS 8
(我知道有人会问为什么要在nginx和IIS之间使用SSL,但这不是我的问题。)
错误情况
垃圾邮件/扫描客户端使用无效的主机名与SSL连接,例如客户端指定的主机名包含星号(*)。这使得IIS在握手期间关闭连接,然后Nginx将其视为IIS处于关闭状态。
然后,当所有IIS服务器都关闭时,下一个请求将从Nginx获取“ Bad网关”。这允许客户端认为IIS已关闭,从而错误地操纵Nginx。
怎么修?
如何解决这个问题?
是否可以通过无效拒绝nginx配置中的请求
基于主机名看字符?
还是有可能使IIS在这些情况下的行为有所不同? IIS已经具有捕获所有ssl绑定的功能,该绑定仅返回禁止的403,但在说明的情况下未实现。
还是我必须在nginx配置中专门列出所有允许的主机名?
最佳答案
像这样:
http {
.....
map $request_uri $blockit {
default 0;
~*\*\.; 1;
}
.....
server {
.....
location / {
if ($blockit) { return 403; }
.....
关于iis - nginx和IIS-处理无效的主机名和SSL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30727246/