Google App Engine Flex проверяет работоспособность контейнеров Docker

Итак, я работаю над GAE Flex для своего приложения Craft CMS. Я использую nginx и mysql_tunnel на супервизоре для этих сервисов.

Я пытаюсь настроить проверки работоспособности, которые предлагает Google, чтобы убедиться, что службы работают, но по какой-то причине это не работает.

liveness_check:
  path: "/_ah/health.php"
  check_interval_sec: 30
  timeout_sec: 4
  failure_threshold: 2
  success_threshold: 2

Это моя конфигурация в файле app.yaml, и когда я проверяю проверки работоспособности в GAE, они показывают, что они возвращают 301 вместо ожидаемых 200. Я уже пробовал отключать свои службы в контейнере, и он показывает, что приложение работает, хотя это не так.


person juanmrad    schedule 24.09.2018    source источник
comment
Вы имеете в виду, когда вы намеренно отключаете услугу, но она все еще отображается как исправная? Вы уверены, что успешно отказались? Поскольку App Engine Flex вылечит или перезапустит виртуальную машину, чтобы убедиться, что ваше приложение работает...   -  person Ying Li    schedule 27.09.2018
comment
Да, они перезапускают виртуальную машину, но мои проверки работоспособности всегда возвращали 301. Я смог это исправить и разместил ответ здесь на случай, если у кого-то возникнет аналогичная проблема.   -  person juanmrad    schedule 27.09.2018


Ответы (1)


Для всех, у кого есть похожая проблема.

Я смог успешно исправить это. Вот проблема. Все это пришло из моей конфигурации nginx, которая настроена на перенаправление всего трафика на адрес www. версия моего сайта, так как мне нужно обеспечить это.

Мой nginx настроен на 301 все запросы к www-версии моего сайта, и это приводило к перенаправлению задания здоровья и возврату ошибки 301. Я добавил этот блок сервера в верхней части моего nginx.conf, чтобы получать все запросы сервера по умолчанию с местоположением моей проверки работоспособности для их обработки, и это исправило это:

server {
  listen 8080 default_server;

  location ~ ^/_ah/ {
    root /var/www/public;
    try_files $uri =404;
    fastcgi_split_path_info ^(.+?\.php)(/.*)$;

    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO       $fastcgi_path_info;
    fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;

    fastcgi_pass   localhost:9000;
    fastcgi_index  index.php;
  }
}

Надеюсь, это поможет людям, которые пытаются настроить пользовательские проверки работоспособности в Google App Engine Flexible и имеют настраиваемые правила nginx на своем сайте.

person juanmrad    schedule 27.09.2018