Как обслуживать приложение Heroku с фиксированным IP-адресом в облаке Google - PullRequest
3 голосов
/ 22 апреля 2019

У меня есть приложение Heroku, которое использует nodejs для обслуживания статической веб-страницы https://foda -app.herokuapp.com

Heroku не предоставляет фиксированный IP-адрес, и мне он действительно нужендля личного проекта, поэтому я пытаюсь использовать зарезервированные статические внешние IP-адреса Google Cloud VPC.

Мне удалось зарезервировать IP-адрес, но я не уверен, как мне связать его с моим приложением Heroku,так как Google Cloud предлагает так много вариантов и услуг.Я просто хочу перенаправить весь трафик с этого IP в приложение Heroku и не могу найти простой способ сделать это.

Мне нужно создать правило глобальной пересылки, но я не могу найти способ добиться этого без использования множества других сервисов.Нужен ли мне экземпляр виртуальной машины?Нужен ли мне балансировщик нагрузки?Должен ли я использовать маршруты VPC или облачный DNS?Я перегружен всеми этими услугами.

Пожалуйста, кто-нибудь может сказать мне, если это возможно, и каков самый простой способ добиться этого?

1 Ответ

3 голосов
/ 26 апреля 2019

Вы можете достичь этого, используя следующие два способа. -

  1. Используйте сторонний аддон на героку. например. https://devcenter.heroku.com/articles/quotaguardstatic

  2. Настройте прокси-сервер на статический IP и перенаправьте весь трафик на нужный URL Heroku.

Детали для шага 2 -

  1. Назначение статического внешнего IP-адреса новому экземпляру виртуальной машины https://cloud.google.com/compute/docs/ip-addresses/reserve-static-external-ip-address

  2. Установите Nginx / HAProxy на вновь приобретенную ВМ.

  3. настройка конфигурации. как показано ниже -

    upstream heroku-1{ server foda-app.herokuapp.com fail_timeout=15s; } server{ listen 80; server_name yourdomain.example or ip address location / { proxy_pass http://heroku-1; proxy_read_timeout 300; } }

  4. Измените сопоставление DNS для своего домена (если оно есть), чтобы оно указывало на статический IP-адрес.

...