我有几个网站在 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)
将遵循重定向并返回最终响应代码,您可以据此做出决定。