簡單聊聊不可或缺的Nginx反向代理服務器--實現負載均衡【上篇】


       今天又是新的一周,我養足了精神去對待新一周的工作,但是今天到公司發現還是有一點空閑時間的,所以就想與之前接觸過的Nginx再交往得更深一點兒。

什么是Nginx:

       Nginx是一款高性能的http服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器。官方測試nginx能夠支撐5萬並發鏈接,但是實際生產環境能到2-3萬並發連接數(只是聽說),並且cpu、內存等資源消耗缺非常低,運行非常穩定。

Nginx在實際生產中的應用場景:

       上面已經說了,Nginx是一款高性能的http服務器,所以它可以提供單獨的http服務,經常在開發中用作靜態網頁服務器來使用;還有一點就是它的核心應用,即反向代理服務器負載均衡:其實反向代理這一點並不難理解,就是通過配置將服務器的IP和指定域名進行映射即可。至於負載均衡,就是當某個網站的訪問量達到一定程度后,並且單台服務器不能提供服務的情況下,我們就需要借助軟件技術能夠讓多台服務器輪流分擔訪問壓力,目的是達到不會因為某台服務器負載高宕機而某台服務器閑置的這種不公平情況,經常我們會采取某種輪詢機制來讓它們正常工作。

什么是負載均衡(Load Balance):

       一台普通服務器的處理能力是有限的,假如能達到每秒幾萬個到幾十萬個請求,但卻無法在一秒鍾內處理上百萬個甚至更多的請求。但若能將多台這樣的服務器組成一個系統,並通過軟件技術將所有請求平均分配給所有服務器,那么這個系統就完全擁有每秒鍾處理幾百萬個甚至更多請求的能力。這就是負載均衡最初的基本設計思想。

       負載均衡是由多台服務器以對稱的方式組成一個服務器集合,每台服務器都具有等價的地位,都可以單獨對外提供服務而無須其他服務器的輔助。通過某種負載分擔技術,將外部發送來的請求按照某種策略分配到服務器集合的某一台服務器上,而接收到請求的服務器獨立地回應客戶的請求。負載均衡解決了大量並發訪問服務問題,其目的就是用最少的投資獲得接近於大型主機的性能。

在Linux環境上安裝Nginx:

第一步:安裝GCC,因為Nginx是用C語言開發的,所以在安裝的時候需要編譯:
yum install –y gcc-c++
第二步:需要安裝第三方軟件:
  • 安裝PCRE yum install –y pcrepcre-devel
  • 安裝ZLIB yum install –y zlibzlib-devel
  • 安裝OPENSSL yum install –y opensslopenssl-devel
第三步: 將Nginx源碼包上傳到linux系統(我這里使用的是nginx-1.8.0.tar.gz),並且解壓縮:
tar -xf nginx-1.8.0.tar.gz
第四步:配置參數,進入nginx的解壓目錄下,執行以下命令:【注意,在配置命令中指定了安裝Nginx的臨時目錄/var/temp/nginx,必須手動創建該結構的目錄mkdir /var/temp/nginx -p】
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi
第五步:編譯Nginx源碼包:
make
第六步:安裝Nginx:
make install
第七步:查看Nginx安裝目錄,如果存在conf、html、sbin三個目錄,則基本安裝成功:
第八步:啟動Nginx、停止Nginx、重啟Nginx:
啟動:進入/usr/local/nginx/sbin目錄下執行命令 ./ngnix
重啟:./nginx–s reload
快速停止:./nginx -s stop
完整停止:./nginx -s quit
第九步:打開瀏覽器輸入安裝了Nginx的服務器IP地址即可出現歡迎頁面,則安裝成功。

Nginx實現負載均衡:

需求:當我們在瀏覽器訪問某一地址時,后台由多個不同端口的服務器來輪詢響應?

 

 

實現步驟:

第一步、准備2台或2台以上的Tomcat服務器,並且保證它們的端口號不發生沖突並能正常訪問,我這里准備了2台並且在每個Tomcat中扔進一個運行正常的web項目。

第二步、配置Nginx的負載均衡,我這里采用輪詢+權重的機制來實現的,說明一點:正常情況下負載均衡的配置是通過域名映射來訪問的,我這兒沒有映射域名,如果各位想通過映射域名則配置域名然后去修改hosts文件即可。

       切換到Nginx安裝目錄下,進入conf目錄,編輯nginx.conf配置文件(如果想了解更詳細的配置說明,推薦http://www.cnblogs.com/xiaogangqq123/archive/2011/03/02/1969006.html)

 第三步、通過配置文件中的配置,訪問資源,最后發現倆個Tomcat服務器上的web應用輪詢響應(這里本應該給各位上傳一段測試后的視頻的,但是咨詢了一下午沒能做到,還望各位將就一下吧)。

 

 
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM