Не могу запустить Tomcat на экземпляре Google GCP - PullRequest
0 голосов
/ 21 мая 2018

Я запустил экземпляр google GCP tomcat из стандартного образа Tomcat (Google щелкните, чтобы развернуть). В качестве ОС используется Debian 9.Я пытаюсь выполнить базовый тест в своем браузере, указывая на IP.ADDRESS: 8080, но время ожидания истекло.Server.xml в / etc / tomcat8 говорит мне, что tomcat работает на порту 8080

Состояние службы tomcat выглядит следующим образом

    tomcat1@generator1-vm:/etc/tomcat8$ sudo service tomcat8 status
    ● tomcat8.service - LSB: Start Tomcat.
    Loaded: loaded (/etc/init.d/tomcat8; generated; vendor preset: enabled)
    Active: active (running) since Mon 2018-05-21 13:34:38 UTC; 1h 7min ago
    Docs: man:systemd-sysv-generator(8)
    Process: 29722 ExecStop=/etc/init.d/tomcat8 stop (code=exited, status=0/SUCCESS)
    Process: 29764 ExecStart=/etc/init.d/tomcat8 start (code=exited, status=0/SUCCESS)
    Tasks: 16 (limit: 4915)
    CGroup: /system.slice/tomcat8.service
    └─848 /usr/lib/jvm/java-8-openjdk-amd64/bin/java -Djava.util.logging.config.file=/va
    May 21 13:34:33 generator1-vm systemd[1]: Starting LSB: Start Tomcat....
    May 21 13:34:38 generator1-vm tomcat8[29764]: Starting Tomcat servlet engine: tomcat8.
        May 21 13:34:38 generator1-vm systemd[1]: Started LSB: Start Tomcat..
    lines 1-13/13 (END)

Таким образом, это означает, что служба действительноработает, но я получаю тайм-аут службы, когда пытаюсь перейти к IP.ADDRESS: 8080 Могу ли я проверить что-нибудь еще?

1 Ответ

0 голосов
/ 23 мая 2018

Скорее всего, это брандмауэр GCP.Когда вы создаете экземпляр Compute Engine (что вы и сделали при развертывании сервера Tomcat), у вас есть возможность включить HTTP и / или HTTPS, что создаст эти правила брандмауэра для вас.Но GCP не будет автоматически создавать правило для порта 8080, даже если Tomcat может его использовать.Вероятно, поэтому время ожидания вашего клиента истекло.

Если вы не хотите открывать порт 8080 для всех ваших виртуальных машин, лучше всего создать сетевой тег на виртуальной машине, а затем создать брандмауэр.правило, которое позволяет трафику от порта 8080 проходить к любой виртуальной машине, имеющей этот сетевой тег.Сначала отредактируйте свою виртуальную машину.Вы можете сделать это из веб-консоли, щелкнув меню гамбургера в левом верхнем углу экрана и в разделе «ВЫЧИСЛИТЬ» выберите «Compute Engine», а затем «Экземпляры виртуальной машины». Щелкните по имени вашей виртуальной машины, и когда откроется страница сведений.нажмите «РЕДАКТИРОВАТЬ» в верхней части экрана. Прокрутите вниз, пока не увидите поле «Сетевые теги», а затем введите любой тег, который вы хотите использовать. Я предлагаю что-то вроде «port8080». Затем нажмите синий «Сохранить»Кнопка внизу экрана.

Снова нажмите меню гамбургера, и на этот раз в разделе «NETWORKING» выберите «Сеть VPC», а затем «Правила межсетевого экрана». Нажмите «CREATE FIREWALL RULE» вверхуэкрана. Дайте ему любое имя. В раскрывающемся списке «Сеть» выберите свою сеть, которая, если вы еще не создали никаких пользовательских VPC, должна быть просто «по умолчанию». Вы можете оставить приоритет как есть. Выберите«Вход» для направления и «Разрешить» для действия. Для «Целей» выберите «Заданные целевые теги», а для «Целевых тегов» введите тег yВы создали выше («port8080», или как вы его называете).В поле «Фильтр источника» выберите «Диапазоны IP-адресов», а в поле «Диапазоны IP-адресов источника» введите 0.0.0.0/0 (что является сокращением для «всех»).Пропустите «Фильтр второго источника».В поле «Протоколы и порты» выберите «Указанные протоколы и порты» и в поле ниже введите «tcp: 8080».Затем нажмите кнопку «Создать» и все будет хорошо.

...