为 Mediawiki 站点设置 AWS Loadbalancer Healthcheck
Posted
技术标签:
【中文标题】为 Mediawiki 站点设置 AWS Loadbalancer Healthcheck【英文标题】:Setting up AWS Loadbalancer Healthcheck for Mediawiki site 【发布时间】:2020-06-14 02:11:43 【问题描述】:我们有一个运行 MediaWiki 的 AWS 实例。现在我们想把它放在 ELB 负载均衡器后面。
ELB 需要 MediaWiki 服务器上的地址来 ping,因此它会收到 200 响应。
我已尝试将“/”作为地址,但看起来它超时了。
在 mediawiki 网站上 ping 进行健康检查的正确/好的地址是什么?
【问题讨论】:
为什么连接超时?这可能是您应该调查的问题。 MediaWiki 应该将请求重定向到/
到 wiki 主页。
【参考方案1】:
如果您使用的是应用程序负载均衡器,您可以在运行状况检查定义中为响应代码指定 200 到 499 之间的值或值范围。因此,如果 Mediawiki 使用重定向响应,您可以接受 301/302 作为有效的健康检查。
如果您需要特定路径(或使用经典负载均衡器),您的 ELB 需要 200(HTTP OK)响应代码,您需要识别路径。为了找出确切路径,请尝试 curl Mediawiki直接从 VPC 中的服务器。例如,下面提到的 curl 导致重定向(301)到新位置 http://www.google.com/
$ curl -Iv google.com
* Rebuilt URL to: google.com/
* Trying 172.217.167.110...
* TCP_NODELAY set
* Connected to google.com (172.217.167.110) port 80 (#0)
> HEAD / HTTP/1.1
> Host: google.com
> User-Agent: curl/7.61.1
> Accept: */*
>
< HTTP/1.1 301 Moved Permanently
HTTP/1.1 301 Moved Permanently
< Location: http://www.google.com/
Location: http://www.google.com/
尝试 curl 到新位置会得到 200 OK 响应。
$ curl -Iv http://www.google.com/
* Trying 172.217.25.36...
* TCP_NODELAY set
* Connected to www.google.com (172.217.25.36) port 80 (#0)
> HEAD / HTTP/1.1
> Host: www.google.com
> User-Agent: curl/7.61.1
> Accept: */*
>
< HTTP/1.1 200 OK
HTTP/1.1 200 OK
这样您就可以从 Mediawiki 服务器找到导致 200 响应的路径。
【讨论】:
【参考方案2】:Special:Blank
应该是一个相对便宜的测试页面。
【讨论】:
以上是关于为 Mediawiki 站点设置 AWS Loadbalancer Healthcheck的主要内容,如果未能解决你的问题,请参考以下文章
AWS - ECS + Application Load Balancer的思考
MediaWiki 会话和 cookie 在 CloudFlare 后面的多服务器上不起作用
在 AWS Elastic Load Balancer 后面使用 Primus.io (websockets)