Я установил Wildfly 10.0.0 Final на Ubuntu 14.04.4 LTS, используя этот скрипт .
] Все выглядит нормально. Но я бы хотел, чтобы wildfly прослушивал порт 80, но изменение standalone.xml для использования порта 80 не работает.
Похоже, только root может прослушивать порты ниже 1024, поэтому вопрос в том, какой способ предпочтительнее настроить Wildfly на серверах Ubuntu на прослушивание порта 80?
Я пробовал использовать nginx и работает, но странно то, что некоторые файлы, такие как css домашней страницы jboss по умолчанию, не могут быть найдены.
Вики JBoss на developer.jboss.org перечисляет довольно полный список опций, которые, вероятно, также действительны для Wildfly; по существу варианты:
Эти два варианта кажутся наиболее распространенными и предпочтительными.
Альтернативы:
И последнее, но не менее важное, мой личный фаворит:
Используйте setcap
, чтобы позволить самому двоичному файлу java возможность связываться с привилегированными портами без необходимости работать как root
:
sudo setcap 'cap_net_bind_service = + ep' / path / to / jre / bin / java
Единственный недостаток - это то, что делать это непонятно, но у вас нет также внешние зависимости от вашего приложения.
Да, настройка Nginx
для работы в качестве обратного прокси перед wildfly это ИМХО предпочтительный путь. На домашней странице Nginx есть руководство по развертыванию о том, как это настроить.
Один из рекомендуемых способов «добраться» до ваших приложений, развернутых на WildFly через порт 80, - использовать Apache HTTP-сервер, который действует как обратный прокси, используя:
a) mod_proxy . Это самый простой способ, если у вас нет опыта работы системным администратором, вы можете использовать HTTP (mod_proxy_http) или AJP (mod_proxy_ajp) на WildFly. Для сценариев балансировки нагрузки вы также используете mod_proxy_balancer.
b) mod_jk немного сложнее в настройке и только AJP, обычно не требуется, поскольку Apache 2.2+ поставляется с mod_proxy_ajp.
c) mod_cluster , более сложный, но с интересными функциями для сценариев балансировки нагрузки, он использует mod_proxy за кулисами.
Вы можете использовать многие другие обратные прокси, такие как nginx или haproxy если хотите.
Другой подход - использовать переадресацию портов iptables:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
Разработчики WildFly рекомендуют использовать что-то подобное, поскольку Undertow действительно быстр.