The Issue of the Day Before

架設分散式的正向代理

-

下載 Caddy Server 和 HAProxy → 設定 Caddy Server 為 Forward Proxy Server → 設定 HAProxy 為 Reverse Proxy Server 並指向 Caddy Server

Why

想要透過與本機不同的 IP 來存取網站,除了換一個 IP 外,簡單的設定透過一個非通透的 Proxy Server 來存取也是個方法。 但要找的一個安全又穩定的 Proxy Server 有一定的難度,所以就自己架一個吧。

但想每次存取網站都換一個 IP,而不用每次查詢都換一個 Proxy Server,就得在前面架一個反向代理來指向後面多台的正向代理。

Diagram

What

Caddy Server

Caddy 是使用 GoLang 編寫的 Web 伺服器, 一般常用來建立反向代理(Reverse proxy)或靜態網頁伺服器。 以設定簡單和自動簽發 HTTPS 證書為賣點。 Let’s Encrypt 是默認的證書頒發機構。

HAProxy

HAProxy 高效的負載平衡或代理伺服器。通常用來做為網站的分流或平衡負載。

How

下載 && 安裝 caddy

下載 && 安裝 HAProxy

如果熟悉編譯可以直接 下載 原始檔後以 make 編譯安裝; 或直接套件安裝 sudo apt-get install haproxy。然後編輯設定檔,如下

haproxy.cfg
global
defaults
        mode    http
        timeout client          30s
        timeout server          30s
        timeout connect         30s

frontend proxy
        bind *:<port>                   // (1)
        default_backend forward

backend forward
        server FP1 <host>:<port>  check // (2)
        server FP2 <host>:<port>  check
        server FP3 <host>:<port>  check
  1. <port> 替換為 HAProxy 伺服器傾聽的埠

  2. <host>:<port> 替換為 Caddy 伺服器傾聽的 IP 和 Port

執行 sudo haproxy -f <path>/haproxy.cfg,即可。

閱讀在雲端