У меня есть две виртуальные машины, на которых запущены HTTP-серверы на порту 8545, как показано на рисунке, и помещены в группу экземпляров.
Я создал балансировщик нагрузки HTTP в GCP для балансировки HTTP-запросов от конечных пользователей. Однако с настройкой, показанной на рисунке, и правилами брандмауэра проверки работоспособности не проходят, и я также не могу получить доступ http://35.190.34.26:80/
Error: Server Error
The server encountered a temporary error and could not complete your request.
Please try again in 30 seconds.
Однако, если я добавлю правило брандмауэра, разрешающее все (0.0.0.0/0 on 8545)
, проверки состояния пройдены, и я также могу получить доступ http://35.190.34.26:80/
Но я не хочу писать это правило брандмауэра, разрешающее всем пользователям 8545. Как правильно настроить брандмауэр, чтобы только балансировщик нагрузки мог получить доступ к группе экземпляров на этом порту?
Поскольку глобальное правило переадресации настроено на порту 80, но внутренние экземпляры обслуживают трафик на порту 8545, необходимо создать два отдельных правила брандмауэра, чтобы разрешить трафик с 130.211.0.0/22 и 35.191.0.0/16 на этих портах. Это диапазоны IP-адресов, которые подсистема балансировки нагрузки использует для подключения к внутренним экземплярам. Это правило разрешает трафик как от балансировщика нагрузки, так и от средства проверки работоспособности.
Я бы посоветовал проверить экземпляры серверной части, чтобы убедиться, что он прослушивает все адреса (0.0.0.0/0) и не привязан к какому-либо конкретному IP-адресу. Кроме того, запуск tcpdump на внутренних экземплярах может помочь узнать, достигает ли трафик экземпляров из указанных выше диапазонов IP-адресов, и продолжить дальнейшую отладку.
Дополнительную информацию о правилах брандмауэра, касающихся балансировки нагрузки Google HTTP (S), можно найти в этом справочном центре. статья.
У меня было аналогичное требование для установки apache ranger с HA с балансировщиком нагрузки в GCP. Только что создано одно правило брандмауэра, чтобы разрешить трафик с 130.211.0.0/22 и 35.191.0.0/16 на порт рейнджера (6080).
Важная вещь, которую мы должны сделать, - это проверить работоспособность -> выбрать протокол TCP с портом 6080 (в вашем случае это будет 8545). Затем вы можете получить доступ к URL-адресу вашего балансировщика нагрузки.