【Nginx 快速入门】反向代理、负载均衡、动静分离
一樣東西的誕生通常都是為了解決某些問題,對于 Nginx 而言,也是如此。
比如,你出于無聊寫了一個小網站,部署到 tomcat 之后可以正常訪問了,好開心。
這時候你的網站用戶非常少,不會存在高并發的情況,這時候一個 jar 包啟動應用就足夠了,然后內部的 tomcat 返回內容給用戶。
但是后來,你的這個小網站因為內容很誘人逐步的火了,用戶越來越多,并發量也慢慢增大,此時一臺服務器已經滿足不了網站的需求了。
你不能眼睜睜的看著你的“孩子”被壓垮呀,于是乎,一咬牙又花錢加了幾臺服務器。
但是問題來了,服務器多了,比如用戶1先通過的服務器1登錄了,但是后來的請求又到了服務器2上,又是沒登錄的,這顯然是不行的。
所以這時候需要一臺代理服務器,幫我們轉發和處理請求。于是乎,Nginx 登場了。
一、什么是Nginx
Nginx(engine x)是一個高性能的 http 和反向代理 web 服務器,同時也可以提供 IMAP/POP3/SMTP 郵件服務。
其特點是占用內存少,并發能力強,運行還很文檔,幾乎可以做到7x24 不間斷運行,即使運行數個月也不需要重啟。而且,還能在服務不間斷的情況下進行軟件版本的升級。
Nginx代碼完全用C語言編寫,官方數據測試表明能夠支持高達50000個并發連接數的響應。
你一看 Nginx 這也太好了,趕緊給你的應用加上。
二、反向代理
既然叫反向代理,那么正向代理是什么?
正向代理
比如你想訪問 Google 查一些技術問題,但是發現你根本上不去,因為有qiang。后來你經過了百度的搜索,找到了一個XX瀏覽器插件,可以給你當梯子,好爬上去看看外面的世界。
這個插件就是正向代理了,你知道它的作用并且主動使用它做達成目的。
反向代理
與正向代理不同,正向代理用戶是有感知的。而反向代理,對用戶來說是無感知的,反向代理服務器介于用戶和目標服務器之間,對于用戶而言,反向代理服務器就相當于目標服務器,即用戶直接訪問反向代理服務器就可以獲得目標服務器的資源。
上面給小網站加了個Nginx,利用的就是反向代理。
三、負載均衡
現在有好幾臺服務器了,也有代理服務器了。但是因為你預算有限,后加的幾臺服務器配置有高有底,這時候如果能讓配置高的服務器多承擔點壓力,讓配置低的少承擔點壓力就好了。
Nginx的負載均衡就可以完成這樣的需求。
1. 輪詢
輪詢,就是讓過來的請求依次訪問服務器。
2. 加權輪詢
加權輪詢,可以根據不同的權重來分發各服務器上的請求數量。
3. iphash
iphash 對客戶端請求的ip進行hash操作,然后根據hash結果將同一個客戶端ip的請求分發給同一臺服務器進行處理,這樣就解決了 session 不共享的問題。
四、動靜分離
你的小網站里有些請求是需要后臺處理的,但是有些請求是不需要的,比如 css、html、jpg、js等文件,這些統稱為靜態文件。
Nginx可以根據一定規則把不變的資源和經常變的資源區分開,做好了拆分之后,我們就可以根據靜態資源的特點將其做緩存操作,從而提高資源響應的速度。
OK,通過動靜分離,你的小網站響應速度也上去了,用戶體驗更好了,你終于送了口氣。
總結
以上是生活随笔為你收集整理的【Nginx 快速入门】反向代理、负载均衡、动静分离的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第2章无人艇局部危险避障算法研究
- 下一篇: 视频教程-react电影院在线选座功能-