2021-02-05 分類: 網(wǎng)站建設(shè)
學到老活到老
前端圈一直很新,一直要不停的學習,而且在進入大廠的路上,還要求熟悉一門后臺語言等等。用一句別人開玩笑的話來說,java十年前的技術(shù)現(xiàn)在還能用,而前端的技術(shù)就不是這樣的了。
突然想起了deno項目發(fā)布的時候,一個搞笑的issue,“求別更新了,老子學不動了”。雖然看起來是一個玩笑的issue,但卻道出了前端們不得不表現(xiàn)出來的疲態(tài),知識點越來越龐大,學習的內(nèi)容越來越多。
也聽到一些朋友們說,換成現(xiàn)在再面試阿里,恐怕不好進了啊。當然很多都是隨便一說的玩笑話,聽過一笑便可,不必當真,也不必抱怨了。
好了,今天就直接來說一下主題吧,前端要了解一些運維的Nginx用法,內(nèi)容不多,簡單看看就好,這兩個功能在工作當中就夠用了,那么首先來看個問題,什么是反向代理與負載均衡。
什么是反向代理與負載均衡
什么是反向代理
當我們有一個服務(wù)器集群,并且服務(wù)器集群中的每臺服務(wù)器的內(nèi)容一樣的時候,同樣我們要直接從個人電腦訪問到服務(wù)器集群服務(wù)器的時候無法訪問,必須通過第三方服務(wù)器才能訪問集群。
這個時候,我們通過第三方服務(wù)器訪問服務(wù)器集群的內(nèi)容,但是我們并不知道是哪一臺服務(wù)器提供的內(nèi)容,此種代理方式稱為反向代理。
什么是負載均衡
公司會建立很多的服務(wù)器,這些服務(wù)器組成了服務(wù)器集群,然后,當用戶訪問網(wǎng)站的時候,先訪問一個中間服務(wù)器,再讓這個中間服務(wù)器在服務(wù)器集群中選擇一個壓力較小的服務(wù)器,然后將該訪問請求引入選擇的服務(wù)器。
所以,用戶每次訪問,都會保證服務(wù)器集群中的每個服務(wù)器壓力趨于平衡,分擔了服務(wù)器壓力,避免了服務(wù)器崩潰的情況。
一句話:nginx會給你分配服務(wù)器壓力小的去訪問。
Nginx反向代理與負載均衡的實現(xiàn)
用戶訪問網(wǎng)站的時候首先會訪問nginx服務(wù)器,然后nginx服務(wù)器再從服務(wù)器集群中選擇壓力較小的服務(wù)器,將該訪問請求引向該服務(wù)器。
nginx配置
下面修改配置方面我就從mac系統(tǒng)下來進行簡單的演示,如何安裝的話也暫以mac為主了,windows系統(tǒng)直接去Nginx官網(wǎng)下載安裝即可。
- 安裝nginx
- 1-進到homebrew官網(wǎng),然后復(fù)制命令,預(yù)安裝需要的東西
- 2-brew install nginx 安裝nginx
- 3-nginx -v 顯示版本號
- 進入nginx
- cd /usr/local/etc/nginx
下圖為進入nginx文件夾下的文件內(nèi)容。
當進到這個目錄下,我們就可以操作nginx了,接下來就列舉一些非常非常有用的命令,多敲幾遍,一定要記住。
nginx常用命令
- 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來配置,將你項目的開發(fā)機地址填寫到proxy_pass后面,正常的格式為proxy_pass URL即可。
- server {
- listen 80;
- location / {
- proxy_pass http://10.10.10.10:20186;
- }
- }
Upstream模塊實現(xiàn)負載均衡
上面寫的三個指令,我們直接通過代碼來一一分析。
- // 修改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里的內(nèi)容直接替換為上面的不到20行的代碼了。
既然不到20行,那就把里面對應(yīng)的內(nèi)容統(tǒng)統(tǒng)解釋一下吧,有個了解就好。
上面修改了nginx.conf之后,別忘了最重要的一步重啟nginx。
那么再次訪問localhost:8080,會看到如下圖頁面:
還有另一個頁面:
每次刷新都會訪問不同的服務(wù)器,這樣就做到了負載均衡處理。
不過,更應(yīng)該做到的是當用戶第一次訪問到其中一臺服務(wù)器后,下次再訪問的時候就直接訪問該臺服務(wù)器就好了,不用總變化了。那么就發(fā)揮了ip_hash的威力了。
- // 省略...
- upstream firstdemo {
- ip_hash;
- server 39.106.145.33;
- server 47.93.6.93;
- }
ip_hash它的作用是如果第一次訪問該服務(wù)器后就記錄,之后再訪問都是該服務(wù)器了,這樣比如第一次訪問是33服務(wù)器,那之后再訪問也會分配為33服務(wù)器訪問了。
工作中的簡單使用
在公司開發(fā)項目的時候,遇到設(shè)計,產(chǎn)品走查環(huán)節(jié)的時候,不能每次都讓他們?nèi)ヅ湟粋€host,畢竟這樣不友好,走查起來有麻煩。所以更應(yīng)該給他們直觀的感受,既給一個訪問地址就可以看到樣子。
下面給大家看一下,我正常在公司時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才能生效,這樣只需要訪問chd.news.so.m.qss.test.so.com這個地址就可以查看我的開發(fā)環(huán)境,進行走查了。
新聞名稱:圖文講解,如何使用 Nginx 反向代理、負載均衡
新聞來源:http://aaarwkj.com/news20/99320.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、網(wǎng)站設(shè)計、靜態(tài)網(wǎng)站、微信小程序、商城網(wǎng)站、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容