反向代理伺服器

 前篇提到記錄自己用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、外部只與反向代理伺服器連接,不與後端連線,增加一層安全性