Как запустить 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
подобно другому ответу Йохана, я делаю это наоборот: мой 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"