Развертывание игры! Рамочное приложение
После команды play run
, как запустить Play в качестве хоста на компьютере? Выполняет ли это apache, tomcat или такие за кулисами?
Если я хочу, чтобы мое приложение (построенное с использованием play! framework) размещалось, например, apache, это будет простая задача?
Ответы
Ответ 1
Он запускает netty за кулисами. Если вы хотите разместить его в контейнере сервлетов, таком как Tomcat или Jetty, просто сделайте это в своей папке проекта:
play war -o /tmp
и вы увидите файл войны проекта в папке /tmp
. Вставьте его в папку webapps
Tomcat или Jetty, и вам должно быть хорошо идти. Вы можете подключить контейнер сервлета к Apache/httpd так же, как если бы вы сделали с такой настройкой (т.е. Тот факт, что ваша война пришла из Playframework, не будет иметь никакого значения в передней части).
Ответ 2
Обычно воспроизведение выполняется с использованием собственного сервера, класса play.server.Server
. Доступ к приложению Play через другой сервер, такой как Apache, никогда не будет быстрее, чем доступ к серверу Play напрямую, но если вы хотите сделать это по другим причинам, см. Put ваше приложение в производстве.
Ответ 3
Просто для ясности, начиная с play2, больше нет официальной поддержки для упаковки вашего проекта в качестве военного файла, и, кроме того, он не похож, что поддержка вернется в ближайшее время.
В Play2 теперь есть собственный веб-сервер, основанный на Netty, и для развертывания вы можете использовать "play stage" для пакетного проекта и запускать его на месте с помощью команды "target/start".
Если вы собираетесь разместить свой проект на сервере без установленного Play2, просто используйте сначала команду "sbt compile stage", которая свяжет необходимые вам зависимости.
Однако в https://github.com/dlecan/play2-war-plugin есть неофициальное усилие, если вы все еще заинтересованы в развертывании в контейнере Servlet 3.0 или 2.5 (Tomcat 6/7, Jetty 7/8/9, JBoss 5/6/и т.д.) Я не использовал это лично, но я слышал об этом.