Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save pulipulichen/fb33a9e61302937f9654751b228b08ec to your computer and use it in GitHub Desktop.
Save pulipulichen/fb33a9e61302937f9654751b228b08ec to your computer and use it in GitHub Desktop.
NGINX,ReverseProxy,Tuning
看看網頁版全文 ⇨ NGINX作為反向代理伺服器的規劃 : Building a Reverse Proxy with NGINX
https://blog.pulipuli.info/2023/04/blog-post_238.html
我希望NGNIX不僅是反向代理伺服器,也能夠成為保護其他伺服器的防火牆,還是提高網頁服務效率的加速器。
----
# 建構規劃 / Planning
(圖片來源:Wikipedia)
反向代理伺服器可說是NGINX最主要的功能之一。
但要建構一個好的反向代理伺服器,可不只單純的從後端拉資料的「proxy_pass」這麼簡單。
這邊我只打算簡單地整理一下到目前為止的構思,並附上相關的參考資源。
主要是拓展大家對於NGINX可以負責工作的想象。
大致上整體規劃包含了五個層面:
1. 反向代理
2. 負載平衡
3. 隱藏伺服器資訊
4. 流量限制
5. 提高效率
接下來就讓我們一個一個來看。
----
# 反向代理 / Reverse proxy。
https://www.programonaut.com/setup-ssl-with-docker-nginx-and-lets-encrypt/。
第一個部分當然就是的反向代理伺服器的職責。
一開始我是參考了「Setup SSL with Docker, NGINX and Lets Encrypt」這篇的做法。
作者對NGINX的要求很簡單,真的只有反向代理伺服器的proxy_pass而已。
http://nginx.org/en/docs/http/request_processing.html。
接著我們要讓反向代理伺服器支援虛擬主機(VirtualHost)的功能。
根據使用者連入的主機名稱,NGINX判斷要連到那個後端伺服器。
這個設定主要是用「server_name」完成。
server_name的形式支援了精確域名、正規表達式、以及星號的通用匹配符號,詳情請看「Nginx的server_name和location配置」的介紹。
除了已經設定好的虛擬主機之外,如果其他人用IP連線,我會直接回傳404。
不過這方法沒辦法阻止用IP連到HTTPS,暫時想不到解決方案。
https://ithelp.ithome.com.tw/articles/10280840?sc=iThelpR。
如果加入了反向代理伺服器,那後端伺服器的所有流量,都會被視為是從反向代理伺服器NGINX連入的結果。
為了讓流量的真實狀況傳遞給後端的伺服器,我們需要加上以下四個設定:。
----
繼續閱讀 ⇨ NGINX作為反向代理伺服器的規劃 : Building a Reverse Proxy with NGINX
https://blog.pulipuli.info/2023/04/blog-post_238.html
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment