ConohaのロードバランサーでHTTPのヘルスモニターがうまく動作しない

当社はNginxでConohaのロードバランサーを使用している。

今まではPINGでヘルスチェックを行っていたのだが、Nginxに障害が出た際に、Pingだと予備サーバーのNginxデーモンが落ちた際に、うまいことバランシング出来なくて、障害が発生したので、HTTPのヘルスチェックに切り替えることにした。

でもうまいこと行かない

原因はHTTPSでした。

今までNginxは

server {
listen 80;
server_name xxx.medicalfields.jp;

if ($http_x_forwarded_proto != https) {
return 301 https://$host$request_uri;
}
}

てな感じで設定したんだけど、どうもConohaだとHTTPでアクセスするとステータスコードが301(URL転送)になってヘルスチェック失敗になるっぽい

そのため親ディレクトリだけはHTTPでアクセスした際にリダイレクトしないように設定した

解決↓

server {
listen 80;
server_name xxx.medicalfields.jp;
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
}
location ^~ /php/ {
if ($http_x_forwarded_proto != https) {
return 301 https://$host$request_uri;
}
}
}

ロードバランサーでHTTPのヘルスチェックに失敗する場合は、参考にしてください