Compute Engine: "Этот сайт не может быть достигнут"
СИТУАЦИЯ:
Я следую этому учебнику.
Когда я добираюсь до части, где я создаю экземпляр и выполняю необходимые команды, я получаю следующее:
To see the application running, go to http://[YOUR_INSTANCE_IP]:8080,
where [YOUR_INSTANCE_IP] is the external IP address of your instance.
ПРОБЛЕМА:
Страница не загружается. Я получаю следующее сообщение об ошибке:
This site cant be reached
ВОПРОС:
Что могло пойти не так?
Все предыдущие шаги работали отлично, и я смог получить доступ к своему веб-сайту локально.
Я ждал готовности экземпляра Compute Engine, проверив:
gcloud compute instances get-serial-port-output my-app-instance --zone us-central1-f
и хотя я повторил все шаги дважды, я все еще получаю сообщение об ошибке.
Что-то должно быть не хватает.
EDIT:
Мои правила брандмауэра:
![enter image description here]()
Ответы
Ответ 1
Если ваш код и правила брандмауэра верны, очень вероятно, что вы пытаетесь подключиться к неправильному IP. Вы должны использовать внешний IP, а не внутренний, который вы получаете с помощью ifconfig
, вы можете получить свой внешний IP на whatsmyip.com
Ответ 2
Я полагаю, вы не применяете тег брандмауэра к экземпляру?
Во-первых, вы можете проверить свои теги compute instences.
gcloud compute instances describe my-app-instance
В вашем примере вы должны увидеть http-сервер в тегах-элементах, как показано ниже
tags:
fingerprint: xxxxxxx
items:
- http-server
- https-server
Если вы не существуете, добавьте теги к существующему экземпляру виртуальной машины, используйте команду gcloud:
gcloud compute instances add-tags [YOUR_INSTANCE_NAME] --tags http-server,https-server
Чтобы добавить теги во время создания экземпляра, включите этот флаг в свое утверждение:
gcloud compute instances create [YOUR_INSTANCE_NAME] --tags http-server,https-server
Ответ 3
Я предлагаю рассмотреть этот шаг:
gcloud compute instances create my-app-instance \
--image-family=debian-9 \
--image-project=debian-cloud \
--machine-type=g1-small \
--scopes userinfo-email,cloud-platform \
--metadata app-location=$BOOKSHELF_DEPLOY_LOCATION \
--metadata-from-file startup-script=gce/startup-script.sh \
--zone us-central1-f \
--tags http-server
Убедитесь, что экземпляр создан с тегом http-сервера
В противном случае правила брандмауэра не вступят в силу для вашего экземпляра
gcloud compute firewall-rules create default-allow-http-8080 \
--allow tcp:8080 \
--source-ranges 0.0.0.0/0 \
--target-tags http-server \
--description "Allow port 8080 access to http-server"