Как запустить платформу воспроизведения в 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"