網頁

2023/9/27

Docker Nginx 反向代理(Reverse Proxy)簡單範例

Docker Nginx反向代理的簡單配置如下。


事前要求

參考「Docker 安裝Nginx」運行Docker Nginx container。


例如Docker Nginx的主機IP位址為13.115.249.12,被代理主機的位址為13.115.249.170


配置proxy_pass

在Docker Nginx的預設server配置文件default.conf(Nginx Container中位在/etc/nginx/conf.d目錄)中,設定一個location區塊,參數為要代理的路徑,例如/hello;並在區塊內設定proxy_pass,參數為要被代理的API URLhttp://13.115.249.170:8080/hello(API回應為hello, )。

location /hello {
    proxy_pass http://13.115.249.170:8080/;
}

設定好後的default.conf內容如下(已刪除預設內容的註解):

/etc/nginx/conf.d/default.conf

server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location /hello {
        proxy_pass http://13.115.249.170:8080/hello;
    }

}

存檔離開,然後輸入nginx -s reload重新載入配置。


測試

在本機命令列輸入curl -X GET "http://13.115.249.12/hello"將請求發送給Docker Nginx,則Nginx會將請求轉發給被代理的http://13.115.249.170:8080/hello。輸出結果如下:

~% curl -X GET "http://13.115.249.12/hello"
hello, 


沒有留言:

張貼留言