本篇內容介紹了“怎么使用Nginx反向代理和負載均衡”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
成都創新互聯是一家專業提供烏什企業網站建設,專注與網站設計、做網站、html5、小程序制作等業務。10年已為烏什眾多企業、政府機構等服務。創新互聯專業網絡公司優惠進行中。
什么是反向代理與負載均衡
什么是反向代理
當我們有一個服務器集群,并且服務器集群中的每臺服務器的內容一樣的時候,同樣我們要直接從個人電腦訪問到服務器集群服務器的時候無法訪問,必須通過第三方服務器才能訪問集群。
這個時候,我們通過第三方服務器訪問服務器集群的內容,但是我們并不知道是哪一臺服務器提供的內容,此種代理方式稱為反向代理。
什么是負載均衡
公司會建立很多的服務器,這些服務器組成了服務器集群,然后,當用戶訪問網站的時候,先訪問一個中間服務器,再讓這個中間服務器在服務器集群中選擇一個壓力較小的服務器,然后將該訪問請求引入選擇的服務器。
所以,用戶每次訪問,都會保證服務器集群中的每個服務器壓力趨于平衡,分擔了服務器壓力,避免了服務器崩潰的情況。
一句話:nginx會給你分配服務器壓力小的去訪問。
Nginx反向代理與負載均衡的實現
用戶訪問網站的時候首先會訪問nginx服務器,然后nginx服務器再從服務器集群中選擇壓力較小的服務器,將該訪問請求引向該服務器。
nginx配置
下面修改配置方面我就從mac系統下來進行簡單的演示,如何安裝的話也暫以mac為主了,windows系統直接去Nginx官網下載安裝即可。
安裝nginx 1-進到homebrew官網,然后復制命令,預安裝需要的東西 2-brew install nginx 安裝nginx 3-nginx -v 顯示版本號 進入nginx cd /usr/local/etc/nginx
下圖為進入nginx文件夾下的文件內容。
當進到這個目錄下,我們就可以操作nginx了,接下來就列舉一些非常非常有用的命令,多敲幾遍,一定要記住。
nginx常用命令
啟動nginx
nginx
當你敲完nginx這5個鍵的時候,并沒有任何反應,此時你只需訪問localhost:8080(默認)即可
關閉nginx
如果出現下圖情況,不要驚慌,是因為之前nginx被啟動過了
只需nginx -s stop,停止nginx服務
然后再次啟動nginx即可
重啟nginx
nginx -s reload
每次修改完.conf文件就需要重啟nginx
檢查配置
檢查修改的nginx.conf配置是否正確
nginx -t
如果出現下面ok和successfull就代表正確了,其他的都不對
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
對于我們前端來說正常工作當中,倒是不需要過多的修改nginx的。我們之所以修改nginx配置,是為了做一些反向代理罷了。
proxy_pass
nginx反向代理主要通過proxy_pass來配置,將你項目的開發機地址填寫到proxy_pass后面,正常的格式為proxy_pass URL即可。
server { listen 80; location / { proxy_pass http://10.10.10.10:20186; } }
Upstream模塊實現負載均衡
ip_hash指令
server指令
upstream指令及相關變量
上面寫的三個指令,我們直接通過代碼來一一分析。
// 修改nginx.conf worker_processes 1; events { worker_connections 1024; } http { upstream firstdemo { server 39.106.145.33; server 47.93.6.93; } server { listen 8080; location / { proxy_pass http://firstdemo; } } }
上面修改的nginx.conf就是上圖中花圈的那個文件,nginx配置的主要修改就在這里。化繁為簡,把原本nginx.conf里的內容直接替換為上面的不到20行的代碼了。
既然不到20行,那就把里面對應的內容統統解釋一下吧,有個了解就好。
worker_processes
工作進程數,和CPU核數相同
worker_connections
每個進程允許的***連接數
upstream模塊
負載均衡就靠它
語法格式:upstream name {}
里面寫的兩個server分別對應著不同的服務器
server模塊
實現反向代理
listen監督端口號
location / {}訪問根路徑
proxy_pass http://firstdemo,代理到firstdemo里兩個服務器上
上面修改了nginx.conf之后,別忘了最重要的一步重啟nginx。
那么再次訪問localhost:8080,會看到如下圖頁面:
還有另一個頁面:
每次刷新都會訪問不同的服務器,這樣就做到了負載均衡處理。
不過,更應該做到的是當用戶***次訪問到其中一臺服務器后,下次再訪問的時候就直接訪問該臺服務器就好了,不用總變化了。那么就發揮了ip_hash的威力了。
// 省略... upstream firstdemo { ip_hash; server 39.106.145.33; server 47.93.6.93; }
ip_hash它的作用是如果***次訪問該服務器后就記錄,之后再訪問都是該服務器了,這樣比如***次訪問是33服務器,那之后再訪問也會分配為33服務器訪問了。
工作中的簡單使用
在公司開發項目的時候,遇到設計,產品走查環節的時候,不能每次都讓他們去配一個host,畢竟這樣不友好,走查起來有麻煩。所以更應該給他們直觀的感受,既給一個訪問地址就可以看到樣子。
下面給大家看一下,我正常在公司時nginx做的反向代理配置,和咱們上面的如出一轍,只是加了一個server_name,用指定的域名去訪問即可。
server { listen 80; server_name chd.news.so.m.qss.test.so.com ; auth_basic off; location / { proxy_pass http://10.10.10.10:20186; proxy_set_header Host $host; proxy_redirect off; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 60; proxy_read_timeout 600; proxy_send_timeout 600; } }
“怎么使用Nginx反向代理和負載均衡”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注創新互聯網站,小編將為大家輸出更多高質量的實用文章!
網頁題目:怎么使用Nginx反向代理和負載均衡
本文路徑:http://vcdvsql.cn/article40/podoeo.html
成都網站建設公司_創新互聯,為您提供標簽優化、微信公眾號、外貿建站、網站設計公司、品牌網站設計、自適應網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯