我有一個Play應用程序,我已經通過在SBT中運行stage
來部署,然後使用target/start
從命令行運行它。我已將Nginx放在它的前面,並且基於子域,我有兩個server
塊 - 一個用於端口80,另一個用於端口443.端口80塊只是重定向到端口443上的https
模式這一切都很好。如何強制用戶通過SSL訪問我的Play應用程序?
要回顧一下:
http://play.mydomain.com/
重定向到https://play.mydomain.com/
這是http://localhost:9000
代理但是,如果我只是去http://mydomain.com:9000/
,我可以訪問我的播放應用程序直接。沒有SSL,我無法想出讓任何人訪問它。
我該怎麼辦?我應該使用Nginx將端口9000上的任何訪問重定向到SSL版本的URL嗎?我應該防火牆端口9000,並只允許在該端口上的本地請求? (如果是這樣,我該怎麼做?)有沒有其他的方式來處理這個問題,我沒有想到?
直到Servlet 3.1規範發佈多長時間,我可以將整個事情部署爲WAR? :-)
確定。剛發現我不能讓Nginx將端口9000重定向到正確的子域名,因爲我的Play應用已經將自己綁定到了9000端口。奇怪的是,我在互聯網上找不到任何關於這個的東西。我開始認爲我錯過了一些基本的東西。 – TOB