как будет очевидно, я не очень разбираюсь в сетях и ценю все подсказки и объяснения. Я написал небольшое веб-приложение в flask, используя gunicorn и nginx. Он контейнеризирован и работает локально. Моя цель — развернуть его в gcloud и указать правильное доменное имя.
Я установил небольшой вычислительный экземпляр. В этом экземпляре я использовал стандартные брандмауэры http и https. У меня зарезервирован и настроен внешний IP-адрес EXT_IP. Кроме того, я настроил брандмауэры для входа и выхода 443 в этом экземпляре. Я запускаю контейнер докера, сопоставляя порты 80 и 443 с портом контейнера. Я не уверен, нужно ли сопоставлять 443 с контейнерным портом. Когда я запускаю http://[EXT_IP], приложение работает так, как и ожидалось. Однако, когда я просто нажимаю на внешний IP-адрес или использую запрос https, я получаю сообщение об ошибке «Ошибка безопасного подключения».
Когда я запускаю nmap EXT_IP
, я получаю следующий вывод, который выглядит разумным.
Host is up (0.039s latency).
Not shown: 994 filtered ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp open https
3389/tcp closed ms-wbt-server
8000/tcp closed http-alt
8001/tcp closed vcom-tunnel
Nmap done: 1 IP address (1 host up) scanned in 10.64 seconds
Кроме того, я попытался настроить Cloud DNS. Я купил домен в доменах Google и настроил запись A для домена на зарезервированный внешний IP-адрес и псевдоним CNAME для домена www.domain в домене. При попытке зайти на сайт с домена получаю ошибку не найдено. Когда я использую host domain_name
, я получаю
Host [Domain Name] not found: 3(NXDOMAIN)
Я подозреваю, что две вещи идут не так. https и сопоставление DNS кажутся отдельными проблемами, но я не уверен.
Может ли кто-нибудь помочь мне, как решить один или оба из них? Заранее большое спасибо.