做了一個Web項目,前後端分離,前端需要使用HTTPS訪問。
部署的時候發現,前端HTTPS項目是不能發起HTTP的ajax到後端的,怎麼辦?
最直接的就是把後端也部署到支持HTTPS的Web服務器上,比如Tomcat,可以配置SSL。不過這樣實在太麻煩,而且我們一般使用的是java內嵌的tomcat。
這時候可以考慮Nginx反向代理。
前端ajax不能使用HTTP訪問,那就使用HTTPS唄,使用Nginx反向代理,把這個HTTPS代理到HTTP不就行了!
所以,解決方案是:
- 前端部署到Nginx上,配置HTTPS。比如通過 https://frontend.com 訪問。前端 Ajax也使用HTTPS訪問後端,比如 https://ajax.com。
- 部署後端:java -jar, HTTP方式,比如通過 http://backend.com 訪問
- Nginx設置反向代理:把 https://ajax.com 代理到 http://backend.com。
這樣前端HTTPS和後端HTTP就能通信了!