Created
June 23, 2023 09:15
-
-
Save pulipulichen/fb33a9e61302937f9654751b228b08ec to your computer and use it in GitHub Desktop.
NGINX,ReverseProxy,Tuning
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
看看網頁版全文 ⇨ 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