Как настроить переадресацию портов с помощью Google Cloud Compute Engine для приложения Node.JS - PullRequest
0 голосов
/ 20 февраля 2019

Я пытаюсь настроить переадресацию портов (порт 80 на порт 8080) для приложения Node.js, размещенного на Google Cloud Compute Engine (Ubuntu и Nginx).

Моя конечная цель - иметьURL-адрес, подобный api.domain.com, показывает то же самое, что и api.domain.com:8080 (на самом деле работает 8080).

Но поскольку это виртуальный сервер на платформе Google, яЯ не уверен, какую конфигурацию я могу сделать.

Я попробовал эти решения безуспешно (возможно, потому что это среда Google Cloud):

  1. Переадресация порта 80 на 8080 с использованием NGINX
  2. Рекомендации по запуску Node.js с портом 80 (Ubuntu / Linode)

Итак, два вопроса здесь:

1.Где мне нужно настроить портforwarding?

  • Непосредственно в моем экземпляре Ubuntu с конфигурационными файлами Nginx или Linux?
  • С помощью команды gcloud?
  • В секретном месте пользовательского интерфейса console.cloud.google.com?

2.Какие настройки или настройки мне нужно сохранить?

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Для будущих читателей я узнал, как настроить переадресацию портов.

  1. Вам необходимо убедиться, что ваш брандмауэр на платформе Google хорошо настроен.Выполните этот процесс, хорошо описанный здесь: Google Cloud - Настройка правил брандмауэра .Вы должны быть уверены, что порт 80 (или 443 для HTTPS) и ваш порт Node.JS (например, 8080 в моем случае) открыты.

  2. Вам потребуется настроить портпереадресация прямо на сервер.Насколько я знаю, в отличие от правил брандмауэра, это не та конфигурация, которую вы можете сделать в пользовательском интерфейсе платформы Google Cloud.В моем случае мне нужно отредактировать файл конфигурации Nginx, расположенный в: / etc / nginx / sites-available / default .

  3. Используйте этот пример для ссылки наОтредактируйте свой файл конфигурации Nginx: Конфигурация nginx для http / https прокси на localhost: 3000

  4. После редактирования вам нужно перезапустить службу Nginx с помощью этой команды: sudo systemctl restart nginx

  5. Проверьте состояние службы Nginx с помощью этой команды: sudo systemctl status nginx

  6. Ваш порт должен быть правильно перенаправлен на ваш Node.jsПриложение.

Спасибо @Джону Хэнли и @howie за ориентацию о конфигурации Nginx.

0 голосов
/ 20 февраля 2019

Одной из возможностей является использование Google Cloud Load балансировщик.https://cloud.google.com/load-balancing/docs/

1) Создайте внутреннюю службу, которая прослушивает порт 8080

2) Создайте службу внешнего интерфейса, которая прослушивает порт 80

3) Затем отправьте трафик внешнего интерфейса наэтот бэкэнд-сервис

4) Бонус: вы можете создать ssl-сертификат, автоматически управляемый GCP https://cloud.google.com/load-balancing/docs/ssl-certificates#managed-certs

...