У меня есть пример wtty-hello world, и я пытаюсь развернуть его на экземпляре Google Cloud. Кажется, он работает нормально локально (следовательно, он имеет все необходимые библиотечные зависимости). Однако я не могу его развернуть на сервере.развертывание веб-приложения WT в облаке Google
Я пытаюсь (используя мой фактический адрес HTTP, который отличается от приведенного ниже примера)
./hello --docroot . --http-address 105.150.47.754 --http-port 80
но он отвечает
Error (asio): bind : cannot assign requested address
Это, кажется, работает нормально, используя (0.0.0.0/ 0)
Экземпляр облака позволяет трафик HTTP tcp/80.
Я попытался
setcap 'cap_net_bind_service=+ep' ~/hello
, чтобы позволить пользователям некорневыми публиковать на порты ниже 1024, но также безрезультатно.
Любые предложения?
Cheers, Mike
the/hello --docroot. --http-address 0.0.0.0 --http-port 80 решение работает, но кажется небезопасным. Любые мысли о рисках? – Mike
Собственно ./hello --docroot. --http-address 10.150.0.4 --http-port 80 также работает там, где 10.150.0.4 является внутренним IP-адресом. Это кажется более безопасным, но не уверен, что это качество продукции. – Mike
Я бы не стал слишком беспокоиться о том, что веб-сервер прослушивает все сетевые интерфейсы. В любом случае, размещение веб-сервера в Интернете сделает его доступным для всех. Я думаю, что более важно, однако, использовать https, а не http. Использование https в наши дни очень просто, тем более, что вы можете использовать сертификат Let's Encrypt, который не требует ничего, кроме времени установки. Новые версии wthttpd, подключенные к вашему Wt-приложению и использующие openssl, проходят все проверки безопасности. Также используйте брандмауэр для блокировки портов, которые вам не нужны, чтобы сделать общедоступными. – Wes