2015-09-09 7 views
15

mi piacerebbe correre Giocare quadro su HTTPS solo nella modalità di sviluppo e ho fatto in modo da utilizzare la seguente po 'di configurazione:Come posso eseguire Play framework in HTTPS solo in modalità dev?

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

Questo funziona quando corro play run ma nella produzione si corre play run --%prodenv e voglio disabilitare HTTPS poiché HTTPS è gestito da Nginx. Sono perso con come farlo. Vorrei farlo tramite il file di configurazione e non tramite ulteriori argomenti della riga di comando poiché sfugge allo scopo di avere tutta la mia configurazione dell'applicazione nel file application.conf.

risposta

0

Piuttosto che avere due file di configurazione, ho ottenuto questo utilizzando solo uno. Per eseguire l'app, eseguo play run --%dev e questo è l'aspetto della configurazione.

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

Non ho visto quel formato prima. Dove è documentato per favore? – Techmag

+0

Ah: https://www.playframework.com/documentation/1.1/ids (mi spiace - vai solo a guardare quando credi che esista qualcosa! - grazie per averlo portato alla mia attenzione) – Techmag

0

Si potrebbe rimuovere il https.port param dal file conf e passarlo in via riga di comando, quando lo si esegue nella modalità di sviluppo:

play run -Dhttp.port=9443 

See: Sprecifying server address and port

+0

Si prega di vedere la mia modifica. Mi piacerebbe farlo tramite il file 'application.conf'. –

+2

Hai considerato l'utilizzo di diversi file conf per dev e prod? –

6

Un modo per farlo è quello di avere due file di confs: application.conf e prod.conf

application.conf rimane così com'è e prod.conf sarebbe simile a

include "application.conf" 
https.port = myProdPort 

### other params to be overwritten 

quando si lancia l'applicazione in prod si può fare

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

Simile al altra risposta da Johan, lo faccio nel modo inverso: la mia application.conf è per prod e corro un dev.conf solo in sviluppo:

include "application.conf" 
https.port = devPort 

E correre a livello locale in questo modo:

play run -Dconfig.file=dev.conf 

In questo modo non è necessario modificare alcuna configurazione sul proprio server di produzione.

-1

quadro gioco viene eseguito utilizzando server di Netty è possibile sovrascrivere la configurazione del server utilizzando -D parametri.

In sbt si può fare come:

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

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

Problemi correlati