2015-09-09 19 views
15

Chciałbym uruchomić Odtwórz Framework nad HTTPS tylko w trybie rozwoju i robiłem tak używając następującej konfiguracji: trochęJak uruchomić środowisko Play w HTTPS tylko w trybie deweloperskim?

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

to działa gdy uruchamiam play run ale w produkcji prowadzimy play run --%prodenv i chcę wyłączyć HTTPS, ponieważ HTTPS jest obsługiwane przez Nginx. Jestem zagubiony, jak to zrobić. Chciałbym to zrobić za pomocą pliku konfiguracyjnego, a nie poprzez dodatkowe argumenty wiersza polecenia, ponieważ nie jest to możliwe, aby mieć całą moją konfigurację aplikacji w pliku application.conf.

Odpowiedz

0

Zamiast dwóch plików konfiguracyjnych osiągnąłem to, używając tylko jednego. Aby uruchomić aplikację, uruchamiam play run --%dev i tak wygląda konfiguracja.

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

Nie widziałem tego formatu wcześniej. Gdzie to jest udokumentowane? – Techmag

+0

Ah: https://www.playframework.com/documentation/1.1/ids (przepraszam - szukasz tylko wtedy, gdy wierzysz, że coś istnieje! - dziękuję za zwrócenie na to uwagi) – Techmag

0

Można usunąć https.port param z pliku conf i przekazać go za pośrednictwem wiersza polecenia, po uruchomieniu go w trybie rozwój:

play run -Dhttp.port=9443 

Patrz: Sprecifying server address and port

+0

Proszę zobaczyć moje zmienił. Chciałbym to zrobić poprzez plik 'application.conf'. –

+2

Czy rozważałeś użycie różnych plików conf dla dev i prod? –

6

Jednym ze sposobów, aby to zrobić ma mieć plik dwa confs: application.conf i prod.conf

application.conf pozostaje tak jest i prod.conf będzie wyglądał jak

include "application.conf" 
https.port = myProdPort 

### other params to be overwritten 

przy uruchamianiu aplikacji w prod można zrobić

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

Podobny do innych odpowiedzi Johan, robię to odwrotny sposób: my application.conf jest dla prod i uruchomić dev.conf tylko w rozwój:

include "application.conf" 
https.port = devPort 

I uruchomić lokalnie tak:

play run -Dconfig.file=dev.conf 

W ten sposób nie musisz zmieniać żadnej konfiguracji na swoim serwerze prod.

-1

Graj w frameworki używając serwera Netty, możesz nadpisać konfigurację serwera przy użyciu parametrów -D.

W sbt można to zrobić tak:

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

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