Как запустить Play framework в HTTPS только в режиме dev?

Я хотел бы запустить Play Framework через HTTPS только в режиме разработки, и я сделал это, используя следующий бит конфигурации:

https.port=9443
trustmanager.algorithm=JKS
keystore.file=conf/certificate.jks
keystore.password=password
certificate.password=password
application.mode=dev
%prodenv.application.mode=prod

это работает, когда я запустить play run но в производстве мы запускаем play run --%prodenv и я хочу отключить HTTPS, поскольку HTTPS обрабатывается Nginx. Я не знаю, как это сделать. Я хотел бы сделать это через файл конфигурации, а не через дополнительные аргументы командной строки, поскольку это противоречит цели иметь все мое приложение конфигурация в .

6 ответов


один из способов сделать это-иметь два файла confs:application.conf и prod.conf

application.conf остается так, как есть и prod.conf будет выглядеть что-то вроде

include "application.conf"
https.port = myProdPort

### other params to be overwritten

при запуске приложения в prod вы можете сделать

play run -Dconfig.file=/mypath/prod.conf

sbt run -Dhttps.port=9443 -Dhttp.port=disabled


подобно другому ответу Йохана, я делаю это наоборот: мой application.conf для prod, и я запускаю dev.conf только в разработке:

include "application.conf"
https.port = devPort

и запустить локально так:

play run -Dconfig.file=dev.conf

таким образом, вам не нужно менять конфигурацию на вашем сервере prod.


убрать https.port param из вашего файла conf и передайте его через командную строку, когда вы запустите его в режиме разработки:

play run -Dhttp.port=9443

посмотреть: Sprecifying адрес сервера и порт


вместо того, чтобы иметь два файла конфигурации, я достиг этого, используя только один. Чтобы запустить приложение, я запускаю play run --%dev и вот как выглядит конфигурация.

%dev.https.port=9443
%dev.trustmanager.algorithm=JKS
%dev.keystore.file=conf/certificate.jks
%dev.keystore.password=password
%dev.certificate.password=password

Play framework запускается с помощью Netty server вы можете перезаписать конфигурацию сервера с помощью -D параметры.

на sbt Это можно сделать так:

sbt "project pepe-grillo-server" "run -Dhttps.port=42443 -Dhttp.port=disabled"