Это плохая практика для запуска сервера веб-приложений непосредственно на порт 80/443

8

Я размещаю веб-приложение на Amazon AWS , используя экземпляр ec2.

В этом случае я буду запускать только одно приложение. используя Glassfish v3.0.1

Я не хочу запускать приложение, используя:

www.mydomain.com:8080 or www.mydomain.com:8181 

Я просто хочу использовать:

www.mydomain.com or https://www.mydomain.com

поэтому я изменил http-listener-1 и http-listener-2 на glassfish для запуска на портах (соответственно) 80 и 443 .

Это считается плохой практикой? Я - инженер-программист, и я обычно не имею дело с администратором сервера, поэтому не слишком опытен в этих вещах.

спасибо за любое руководство.

shadesco
источник
Не привязывайте службу веб-приложений напрямую к порту 80 или 443. Это подразумевает, что вы используете публичную службу как root, что никогда не было хорошей идеей.
Skyhawk

Ответы:

13

Вы могли бы это сделать, но сначала вы столкнетесь с проблемами производительности, а затем с проблемами безопасности.

Обычно «обычный» высокопроизводительный веб-сервер отвечает на порт 80/443 и передает запросы на сервер приложений. «Обычный» сервер может обрабатывать такие вещи, как статические изображения, JavaScript и CSS, гораздо проще, чем GlassFish, что повышает производительность. Он также будет иметь множество опций для контроля доступа, кэширования и т. Д.

В Интернете полно примеров конфигураций для настройки веб-сервера (например, nginx или Apache) перед GlassFish, Jetty, Tomcat или любым другим сервером приложений, который вы хотите использовать. В зависимости от того, какой EC2 AMI вы используете, один из этих веб-серверов может быть предварительно настроен и готов к работе.

Майкл Хэмптон
источник
3
+1 за освещение преимуществ выделенной входной двери. Давайте добавим: непрерывные обновления, балансировку нагрузки и, в особенности, с AWS полный набор игрушек: Elastic Load Balancer, Elastic Beanstalk, CloudFront и т. Д.
khoxsey