如何在启用重定向时检查网站是否可用

如何在启用重定向时检查网站是否可用

我有几个网站在 docker 容器中运行。由于在同一台服务器上运行着多个 docker 容器,因此每个容器都使用 nginx 设置重定向。现在我想编写一个简单的 shell 脚本来定期检查 URL 是否可用。我尝试过的方法是

echo $(curl mysubhost.com --write-out '%{http_code}' --silent --output /dev/null servername)

现在,由于重定向,我总是得到结果代码301000

即使容器停止或容器内的 apache 服务停止,我总是得到相同的结果代码,因为nginx在服务器层进行了重定向。

监控我的网站是否可用的正确方法是什么?其中一种方法是检查容器是否正在运行,但这还不够,因为容器可以启动并运行,但网站不可用的原因可能有很多。

Nginx 代理看起来像

server {

  server_name mysubhost.com www.mysubhost.com;

  location / {
       proxy_pass http://127.0.0.1:100;
      proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
         proxy_ssl_verify              off;

}}

答案1

只需使用-L解决了我的问题所以现在使用

echo $(curl -L mysubhost.com --write-out '%{http_code}' --silent --output /dev/null servername)

将遵循重定向并返回最终响应代码,您可以据此做出决定。

相关内容