利用Nginx實現動靜分離和負載均衡

2021-06-07 20:11:08 字數 1802 閱讀 4358

1、nginx介紹

2、為什麼使用nginx

nginx 是乙個高效能web和反向**伺服器, 它具有有很多非常優越的特性(主要是基於linux系統闡述的): 

l 在高連線併發的情況下,nginx是apache伺服器不錯的替代品: nginx在美國是做虛擬主機生意的老闆們經常選擇的軟體平台之一. 能夠支援高達 50,000 個併發連線數的響應, 感謝nginx為我們選擇了 epoll and kqueue 作為開發模型. 

l nginx作為負載均衡伺服器: nginx 既可以在內部直接支援 rails 和 php 程式對外進行服務, 也可以支援作為 http** 伺服器對外進行服務. nginx採用c進行編寫, 不論是系統資源開銷還是cpu使用效率都比 perlbal 要好很多. 

l 作為郵件**伺服器: nginx 同時也是乙個非常優秀的郵件**伺服器(最早開發這個產品的目的之一也是作為郵件**伺服器), last.fm 描述了成功並且美妙的使用經驗. 

l nginx 是乙個 [#installation 安裝] 非常的簡單 , 配置檔案 非常簡潔(還能夠支援perl語法), bugs 非常少的伺服器: nginx 啟動特別容易, 並且幾乎可以做到7*24不間斷執行,即使執行數個月也不需要重新啟動. 你還能夠 不間斷服務的情況下進行軟體版本的公升級 。

以上都是官方的一些說法,看看網上的一些意見:「4gb記憶體的伺服器+apache(prefork模式)一般只能處理3000個併發連線,因為它們將占用3gb以上的記憶體,還得為系統預留1gb的記憶體。我曾經就有兩台apache伺服器,因為在配置檔案中設定的maxclients為4000,當apache併發連線數達到3800時,導致伺服器記憶體和swap空間用滿而崩潰。而這台 nginx 0.5.31 + php 5.2.4 (fastcgi) 伺服器在3萬併發連線下,開啟的10個nginx程序消耗100m記憶體(20mb*10=100m),開啟的250個php-cgi程序消耗1g記憶體(4mb*250≈1gb),加上系統自身消耗的記憶體,總共才消耗2gb記憶體。如果伺服器記憶體較小,完全可以只開啟25個php-cgi程序,這樣php-cgi消耗的總記憶體數才100m。在開啟25個php-cgi程序的情況下,每分鐘的處理能力只比開啟250個php-cgi程序時低了不到一半。」

3、nginx的安裝

基於李,楊家用的1臺主機,作業系統是win2003版本的,進行安裝配置。

4、動靜分離和負載均衡的準備工作

l host配置:

127.0.0.1 yangli.com

l 伺服器:win2003  1臺

l web容器:tomcat 6(8888埠)、resin(8080埠)

tomcat和resin都部署相同應用,getusers.jsp作為測試頁面。

l 反向**伺服器:nginx-0.8.34.zip

靜態目錄路徑:e:/home/htmlfile/getusers.html

l 專案部署:普通web專案,例如:example

ø resin-3.0.26配置:

ø apache-tomcat-6.0.26 配置檔案:

修改:d:/apache-tomcat-6.0.26/conf/server.xml

增加:xmlvalidation="false" xmlnamespaceaware="false">

主要是為了解決訪問tomcat伺服器的時候,

不需要可以直接訪問:

具體說明,可以上網搜搜。

l 實現原理圖:

配置原理圖

5、動靜分離

假設後端只有一台web伺服器,配置如下:

upstream yangli.com 

server

}

Nginx動靜分離實現

nginx動靜分離實現 nginx是一種輕量級,高效能,多程序的web伺服器,非常適合作為靜態資源的伺服器使用,而動態的訪問操作可以使用穩定的apache tomcat及iis等來實現,這裡就以nginx作為 伺服器的同時,也使用其作為靜態資源的伺服器,而動態的訪問伺服器就以apache為例說明。原...

nginx實現動靜分離

什麼是動靜分離 第乙個,nginx本身就是乙個高效能的靜態web伺服器 第二個,其實靜態檔案有乙個特點就是基本上變化不大,所以動靜分離以後我們可以對靜態檔案進行快取 或者壓縮提高 效能 靜態資源的型別 在nginx的conf目錄下,有乙個mime.types檔案裡邊列出了 靜態資源的型別,如下 當使...

nginx 實現動靜分離

為了加快 的解析速度,可以把動態頁面和靜態頁面由不同的伺服器來解析,加快解析速度。降低原來單個伺服器的壓力。在動靜分離的tomcat的時候比較明顯,因為tomcat解析靜態很慢,其實這些原理的話都很好理解,簡單來說,就是使用正規表示式匹配過濾,然後交個不同的伺服器。1 準備環境 準備乙個nginx ...