前篇提到記錄自己用ubuntu 18.04 來安裝nginx與certbot,主要目的在架設一個反向代理伺服器。
這篇記錄一下自己對反向代理的理解,以免日後又忘了。
我有三台API的服務,分別是s1.test.com、s2.test.com、s3.test.com,其中s1、s2是Docker Container,因此IP是一樣的,利用不同的Port來區分。
以前遇到這樣的架構時,我會設定防火牆的規則,可是也產生了一些問題。
1、防火牆必須開放Port 1234、5555
2、外部網站需要使用https,則每個API服務都要各別設定SSL憑證
3、前端應用可能基於安全原則,只允許呼叫https(Port 443)的服務
因此,利用nginx建置了反向代理伺服器,並設定了三個proxy rule:
1、如下圖當前端呼叫https://s1.test.com時,反向代理伺服器就會轉送要求給10.10.10.1:1234
2、我只需要在反向代理啟用SSL,後端可以不必額外的設定
3、防火牆只需要開通Port 443即可
4、外部只與反向代理伺服器連接,不與後端連線,增加一層安全性