Как запустить платформу воспроизведения в 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. Я проиграл, как это сделать. Я хотел бы сделать это через конфигурационный файл, а не с помощью дополнительных аргументов командной строки, так как это не соответствует цели конфигурации моего приложения в файле application.conf.

Ответы

Ответ 1

Вместо двух файлов конфигурации я достиг этого, используя только один. Чтобы запустить приложение, я запустил 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

Ответ 2

Один из способов сделать это - создать два файла 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

Ответ 3

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

include "application.conf"
https.port = devPort

И выполните локально так:

play run -Dconfig.file=dev.conf

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

Ответ 4

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

play run -Dhttp.port=9443

Смотрите: Уточнение адреса и порта сервера

Ответ 5

Выполнение прогона фреймов с использованием сервера Netty позволяет перезаписать конфигурацию сервера с помощью параметров -D.

В sbt это можно сделать следующим образом:

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