Nginx 代理與負載均衡詳解
nginx除了可以做網站的虛擬主機之外,還可以做代理器,并且, nginx在代理器的基礎上可以做到負載均衡。
一、代理器:
所謂代理器,即接受請求,將請求進行轉發,得到結果然后返回。
比如,我訪問localhost:10010的時候nginx代理到百度的頁面。
nginx實現代理:
server { listen 10010; server_name localhost; location / { proxy_pass http://www.baidu.com; } }
即,使用proxy_pass配置來進行代理,上述配置會將所有的請求都代理到百度首頁上面。
二、負載均衡:
所謂負載均衡,本質上可以說是接受請求,然后根據配置將請求轉發到不同的服務器上面。來不同服務器對請求的支持。
要實現負載均衡,首先需要服務器池,因為負載均衡會對應多個服務器,所以需要對這些服務器封裝成為一個服務器池。
1、新建一個服務器池:
upstream backendServers { server 127.0.0.1:8081; server 127.0.0.1:11000; }
服務器池對應的配置是upstream,upstream與server并列,都寫在http里面。其后面即為服務池的名稱(可以取任意的名稱),里面的server即對應服務器的地址。
2、將請求代理到服務器池:
與上述代理相同,我只需要將請求轉發給服務器池即可:
server { listen 10020; server_name localhost; location / { proxy_pass http://backendServers; } }
啟動nginx,訪問localhost:10020,即可看到請求第一次到127.0.0.1:8081,第二次到127.0.0.1:11000,以此類推。即可以看到,默認的負載均衡方式即為輪詢式。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
新聞熱點
疑難解答