Мы установили экземпляр виртуальной машины Windows на gce для тестирования веб-сервера с IIS, и он работает нормально: я могу получить доступ к своему приложению портала извне, поскольку брандмауэр имеет трафик http / https, включенный по умолчанию при создании виртуальной машины.
Однако нам нужно протестировать его сейчас с помощью node.js, и мы не можем получить к нему доступ извне при использовании тех же протоколов http / https. Мы сделали простой тест:
запустите node.js с помощью этого простого приложения веб-сервера:
var http = require('http');
http.createServer(function (req, res) {
res.write('Hello World!');
res.end();
}).listen(80, "0.0.0.0"); //the server object listens on port 80
Мы протестировали несколько IP-адресов в прослушивателе («0.0.0.0», «127.0.0.1», internal_google_ip, external_google_ip и т. Д.), Но это не сработало.
Кто-нибудь знает, нужно ли нам настраивать какую-либо дополнительную конфигурацию в нашем экземпляре виртуальной машины, например, определенные сетевые интерфейсы GCE, настройки брандмауэра и т. Д.? Этого не должно происходить, поскольку, если он правильно сопоставлен с обработкой IIS, он также должен работать с простым веб-сервером node.js.
Кстати, если мы настроим это на наших внутренних серверах компании, if будет работать нормально. Пожалуйста помоги
Как вы упомянули, когда вы создаете экземпляр для IIS, вам нужно специально выбрать параметр, разрешающий трафик, как это чтобы он работал:
Брандмауэр
Добавьте теги и правила брандмауэра, чтобы разрешить определенный сетевой трафик из Интернета.
☑ Разрешить HTTP-трафик
☑ Разрешить трафик HTTPS
Это добавляет теги "http-сервер" и "https-сервер" к вашему экземпляру и по умолчанию в правилах вашего брандмауэра под «СЕТЬ VPC» у вас будут эти две политики:
default-allow-http
Ingress
http-server
IP ranges: 0.0.0.0/0
tcp:80 Allow 1000
default
default-allow-https
Ingress
https-server
IP ranges: 0.0.0.0/0
tcp:443 Allow 1000
default
Вы можете проверить как управлять политиками брандмауэра с помощью сетевых тегов, при правильном использовании он может упростить управление правилами брандмауэра.
После некоторого анализа проблема была легко решена: мы просто добавили правило брандмауэра, разрешающее трафик http / https (80 и 443 порта), и вуаля!
Кажется, что каким-то образом gce автоматически добавляет исключения брандмауэра, когда мы активируем доступ http / https во время создания виртуальной машины gce. Однако мы не можем найти эти исключения в конфигурации брандмауэра, что затрудняет понимание проблемы ...