• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      Linux負(fù)載均衡集群技術(shù)在網(wǎng)絡(luò)服務(wù)器中的應(yīng)用

      2017-01-21 16:10:11孔祥真張丁李忠遠(yuǎn)
      軟件導(dǎo)刊 2016年12期
      關(guān)鍵詞:負(fù)載均衡集群

      孔祥真+張丁+李忠遠(yuǎn)

      摘 要:調(diào)研了目前市場占有率比較高的Unix和Linux服務(wù)器應(yīng)用現(xiàn)狀,重點研究了Linux集群技術(shù),并在校園網(wǎng)絡(luò)平臺的搭建中使用了Nginx負(fù)載均衡技術(shù)。分析Linux小型機集群方案的可行性,以及Nginx反向代理技術(shù)對于解決網(wǎng)絡(luò)服務(wù)器高負(fù)荷、高流量、不穩(wěn)定等問題的優(yōu)勢,并部署了Nginx服務(wù)器和Tomcat服務(wù)器集群,為學(xué)校提供了一個高可用、高并發(fā)、高穩(wěn)定且廉價的服務(wù)器解決方案。

      關(guān)鍵詞:Linux;負(fù)載均衡;網(wǎng)絡(luò)服務(wù)器;集群;Ngnix

      DOIDOI:10.11907/rjdk.162633

      中圖分類號:TP393

      文獻(xiàn)標(biāo)識碼:A文章編號:1672-7800(2016)012-0144-03

      0 引言

      隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,對于服務(wù)器的需求量也隨之劇增。除了Unix系統(tǒng),作為類Unix系統(tǒng)的Linux操作系統(tǒng)近年來也倍受青睞。最近,著名雜志《網(wǎng)絡(luò)世界》進(jìn)行了一次調(diào)查,其經(jīng)由多種渠道搜集了來自各行各業(yè),也包括政府機構(gòu)IT部門的Linux操作系統(tǒng)在產(chǎn)業(yè)中的應(yīng)用情況,以此預(yù)知Linux在未來應(yīng)用領(lǐng)域的發(fā)展趨勢。調(diào)查結(jié)果表明,Linux有著非常好的應(yīng)用前景,近64.5%以上的負(fù)責(zé)人計劃將Linux應(yīng)用于Web服務(wù)器。Unix大型機固然有較為明顯的性能優(yōu)勢,然而近期市場占有率有下降的趨勢。

      以目前Web服務(wù)器應(yīng)用較多的Nginx技術(shù)為支持,構(gòu)建Linux小型機集群替代Unix大型機,以盡可能地降低服務(wù)器成本。本文首先探討服務(wù)器集群技術(shù),分析負(fù)載均衡集群的算法策略與工作原理,然后在校園服務(wù)器網(wǎng)絡(luò)平臺的搭建中,運用該技術(shù)部署Tomcat服務(wù)器集群和Nginx服務(wù)器,并采用Nginx反向代理的關(guān)鍵字命名規(guī)則進(jìn)行整合,搭建一個具有較強穩(wěn)定性與可用性的校園網(wǎng)絡(luò)服務(wù)器。

      1 Nginx及其相關(guān)技術(shù)

      1.1 Nginx

      Nginx可作為輕量級的Web服務(wù)器、反向代理服務(wù)器及電子郵件代理服務(wù)器使用,由俄羅斯的程序設(shè)計師Igor Sysoev開發(fā)。其占有內(nèi)存少、并發(fā)性能好,并發(fā)能力優(yōu)于同類網(wǎng)頁服務(wù)器。目前,我國使用Nginx的網(wǎng)站用戶包括百度、新浪、京東、網(wǎng)易、騰訊、淘寶等知名網(wǎng)站。Nginx作為一款較為實用的Web服務(wù)器,與其它Web服務(wù)器相比具有以下優(yōu)點[1]:①支持網(wǎng)絡(luò)請求高并發(fā)。據(jù)官方統(tǒng)計,其每秒能處理5萬靜態(tài)網(wǎng)頁請求;②反向代理性能優(yōu)越,通常被用于負(fù)載均衡;③CPU與內(nèi)存占用率低。官方統(tǒng)計數(shù)據(jù)顯示,其占用率僅為Apache的1/5~1/10;④對于php可使用cgi與fastcgi方式。

      1.2 正向代理與反向代理

      (1)正向代理(Forward Proxy)。通常所說的代理技術(shù)指正向代理技術(shù)。正向代理的定義如下:一個位于客戶端的用戶A、服務(wù)器B、位于A和B之間的代理服務(wù)器Z,用戶A要從服務(wù)器B取得用戶請求的內(nèi)容,可以通過代理服務(wù)器Z發(fā)送請求并指定目標(biāo)是服務(wù)器B,由代理服務(wù)器Z向目標(biāo)服務(wù)器B轉(zhuǎn)交請求,獲得的內(nèi)容返回客戶端A。也即是說,正向代理就是代理服務(wù)器替代客戶端用戶A來訪問服務(wù)器B。

      (2)反向代理(Reverse Proxy)。在反向代理時,對于客戶端而言,代理服務(wù)器如同原始資源服務(wù)器,客戶端用戶不需要進(jìn)行任何設(shè)置。客戶端向反向代理的命名空間發(fā)送連接請求,然后服務(wù)器Z判斷向何處轉(zhuǎn)交連接請求,并將獲得的內(nèi)容返回給客戶端的用戶A。用戶A會感覺其請求的是原始資源服務(wù)器,而不是反向代理服務(wù)器Z。

      二者區(qū)別為:①正向代理能夠讓帶有防火墻的局域網(wǎng)用戶訪問外部互聯(lián)網(wǎng);②反向代理將防火墻后面的服務(wù)器提供給用戶訪問,還能為后端的多臺服務(wù)器提供負(fù)載平衡,或者為后端多臺性能不均的服務(wù)器提供權(quán)重服務(wù);③正向代理使客戶端通過其可以訪問任意網(wǎng)站且隱藏本身,因此必須采取相應(yīng)的安全措施,以確保僅為授權(quán)有保證的互聯(lián)網(wǎng)客戶端提供網(wǎng)絡(luò)服務(wù)。

      1.3 負(fù)載均衡技術(shù)

      負(fù)載均衡(Load Balance)是建立在網(wǎng)絡(luò)結(jié)構(gòu)上的一種廉價、有效方法,它可以擴展網(wǎng)絡(luò)設(shè)備帶寬,增加吞吐量,增強網(wǎng)絡(luò)并發(fā)處理數(shù)據(jù)的能力,提高網(wǎng)絡(luò)的可用性和靈活性。Nginx支持3種負(fù)載均衡策略:①輪詢:請求依次輪詢每個服務(wù)器;②最少鏈接:請求發(fā)送給持有最少活動鏈接的服務(wù)器;③IP哈希:請求通過哈希函數(shù)決定發(fā)送給哪個服務(wù)器。

      1.4 集群

      集群是由一組獨立的計算機系統(tǒng)構(gòu)成的松耦合多處理器系統(tǒng)[2],通過網(wǎng)絡(luò)實現(xiàn)進(jìn)程間的通信。目前,實現(xiàn)分布式計算機集群的技術(shù)有負(fù)載均衡集群、高可用集群和科學(xué)計算集群。本文重點介紹負(fù)載均衡集群。負(fù)載均衡集群由兩臺或兩臺以上服務(wù)器組成,分前端負(fù)載調(diào)度和后端服務(wù)兩部分??蛻舳擞脩舻倪B接請求由前端依據(jù)負(fù)載均衡策略分配給后端服務(wù)器,后端服務(wù)器應(yīng)答請求,并將請求內(nèi)容返回用戶。因而可知,后端服務(wù)器是客戶端真正請求內(nèi)容的服務(wù)器。與高可用服務(wù)集群不同,在負(fù)載均衡集群中,所有后端服務(wù)器都處于工作狀態(tài),都有可能對前端服務(wù)器的請求進(jìn)行應(yīng)答。

      Nginx是利用反向代理服務(wù)器來實現(xiàn)負(fù)載均衡。如果學(xué)校采用Nginx作為Web服務(wù)器,可以阻擋外來黑客攻擊,保證數(shù)據(jù)的安全性與網(wǎng)頁內(nèi)容的穩(wěn)定性,還可有效解決網(wǎng)頁打開速度慢、網(wǎng)頁內(nèi)容請求不到等問題,使學(xué)生能夠更加方便快捷地訪問學(xué)校網(wǎng)頁。另外,使用負(fù)載均衡策略還可有效解決服務(wù)器資源浪費等問題。

      2 Nginx代理服務(wù)器搭建

      在Linux的Centos 7系統(tǒng)中搭建Nginx Web應(yīng)用代理服務(wù)器[3],服務(wù)器集群架構(gòu)分為前端和后端服務(wù)器[4-6]。前端Nginx服務(wù)器的IP為192.168.1.2,后端為Tomcat服務(wù)器,IP分別為192.168.1.4、192.168.1.5、192.168.1.6。其工作過程為:客戶端瀏覽器發(fā)送請求,前端Nginx負(fù)載均衡服務(wù)器得到請求后,依據(jù)相應(yīng)的負(fù)載均衡調(diào)度算法,將請求發(fā)送給后端Tomcat服務(wù)器。Tomcat服務(wù)器收到請求后進(jìn)行響應(yīng),并將請求內(nèi)容轉(zhuǎn)發(fā)給Nginx服務(wù)器,最后Nginx服務(wù)器將響應(yīng)內(nèi)容發(fā)送給客戶端用戶瀏覽器,其拓?fù)鋱D如圖1所示。具體配置為:

      系統(tǒng)環(huán)境: RHEL7 Linux

      Web服務(wù)器: 192.168.1.2 Nginx

      192.168.1.4 Tomcat1

      192.168.1.5Tomcat2

      192.168.1.6 Tomcat3

      2.1 Nginx Web服務(wù)器安裝與使用

      (1)安裝Nginx所需要的依賴包:yum -y install gcc gcc-c++ make libtool* zlib* openssl openssl-devel pcre pcre-devel。

      Nginx需要以下3個依賴包:zlib-1.2.8.tar.gz、pcre-8.21.tar.gz和openssl-1.0.1.tar.gz。

      (2)啟動Nginx。

      [root@xixy ~]# /usr/local/nginx/sbin/nginx

      然后啟動nginx,/usr/local/nginx/sbin/nginx 回車即可。查看進(jìn)程是否已啟動:

      [root@xixy~]# ps -ef |grep nginx

      在瀏覽器輸入192.168.1.2后,出現(xiàn)下面的圖片文字,則說明Nginx服務(wù)器安裝成功。

      (3)重啟或關(guān)閉Nginx進(jìn)程:

      [root@xixy~]# /usr/local/nginx/sbin/nginx?-s reload

      [root@xixy~]# /usr/local/nginx/sbin/nginx -s stop

      (4)將Nginx添加到開機啟動:

      [root@xixy~]# echo"/usr/local/nginx/sbin/nginx">>/etc/rc.d/rc.local

      2.2 Tomcat Web服務(wù)器安裝與使用

      Tomcat是網(wǎng)頁應(yīng)用服務(wù)器,主要功能是用于解析動態(tài)頁面,常與Apache服務(wù)器和Nginx服務(wù)器配合搭建整個Http服務(wù)器端。Tomcat目前的最新版本為9.0。Tomcat主要用來解析JSP語言,所以安裝Tomcat之前需要安裝JDK (Java Development Kit),JDK是Java 語言的軟件開發(fā)工具包。

      IP:192.168.1.4 Tomcat Web 服務(wù)器的安裝過程如下:

      (1)安裝JDK。

      (2)安裝Tomcat1。首先,在官網(wǎng)下載Tomcat,這里下載的是apache-tomcat-7.0.27.tar.gz,下載完后解壓:

      [root@xixy2 ~]# tar xf apache-tomcat-7.0.27.tar.gz

      [root@xixy2 ~]# mv apache-tomcat-7.0.27 /usr/local/tomcat

      然后,啟動Tomcat,命令為:

      [root@xixy2 ~]# /usr/local/tomcat/bin/startup.sh

      通過命令ps-ef |grep tomcat 查看進(jìn)程及端口是否存在,在瀏覽器中輸入http://192.168.1.4:8080,還可以通過頁面訪問Tomcat默認(rèn)測試頁面。

      最后,關(guān)閉Tomcat,命令為:

      [root@xixy2 ~]# /usr/local/tomcat/bin/shutdown.sh

      (3)安裝IP為192.168.1.4 的Tomcat Web服務(wù)器。

      (4)安裝IP為192.168.1.6 的Tomcat Web 服務(wù)器。

      2.3 Nginx Web與Tomcat Web服務(wù)器配置和整合

      2.3.1 Nginx服務(wù)器配置

      (1)編輯nginx.conf配置文件:

      [root@xixy ~]# vim /usr/local/nginx/conf/nginx.conf

      (2)指定負(fù)載均衡方式:

      upstream tomcat {

      server 192.168.1.4:8080;

      server 192.168.1.5:8080;

      server 192.168.1.6 :8080;

      }

      server {

      listen 80;

      server_name localhost;

      location / {

      root html;

      index index.html index.htm index.php;

      proxy_pass http://tomcat;

      }

      location ~ .*\.(php|jsp|cgi)?$ {

      proxy_set_header Host $host;

      proxy_set_header X-Real-IP $remote_addr;

      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

      proxy_pass http://tomcat;}}

      }

      2.3.2 Tomcat Web服務(wù)器配置

      (1)IP:192.168.1.4 Tomcat Web服務(wù)器。

      創(chuàng)建自己的網(wǎng)頁發(fā)布目錄,執(zhí)行以下命令:

      [root@xixy2 ~]# mkdir -p /usr/webapps/www

      編輯vim /usr/local/tomcat/conf/server.xml,在最后前一行加以下內(nèi)容:

      Tomcat發(fā)布目錄內(nèi)容:

      [root@xixy2]# vim index.jsp

      測試01

      <%@ page contentType="text/html;charset=utf-8"%>

      (2)IP:192.168.1.5 Tomcat Web 服務(wù)器。

      創(chuàng)建自己的網(wǎng)頁發(fā)布目錄,執(zhí)行以下命令:

      [root@xixy3 ~]# mkdir -p /usr/webapps/www

      編輯vim /usr/local/tomcat/conf/server.xml,在最后前一行加以下內(nèi)容:

      Tomcat發(fā)布目錄內(nèi)容:

      [root@xixy3 www]# vim index.jsp

      測試02

      <%@ page contentType="text/html;charset=utf-8"%>

      (3)IP:192.168.1.6 Tomcat Web 服務(wù)器。

      創(chuàng)建自己的網(wǎng)頁發(fā)布目錄,執(zhí)行以下命令:

      [root@xixy4 ~]# mkdir -p /usr/webapps/www

      編輯vim /usr/local/tomcat/conf/server.xml,在最后前一行加以下內(nèi)容:

      Tomcat發(fā)布目錄內(nèi)容:

      [root@xixy4 www]# vim index.jsp

      測試03

      <%@ page contentType="text/html;charset=utf-8"%>

      2.4 性能測試

      (1)在進(jìn)行性能測試時,記錄了運行時間。本記錄中選取響應(yīng)時間最長和最短的客戶端訪問請求進(jìn)行記錄。

      (2)響應(yīng)時間指客戶端發(fā)出請求到服務(wù)器,服務(wù)器接受請求,并處理該請求的響應(yīng)時間,時間單位為毫秒。

      在并發(fā)量為100個用戶以內(nèi)時,系統(tǒng)運行正常,即各頁面訪問操作正常。隨著并發(fā)訪問用戶達(dá)到120時,服務(wù)器壓力變大,大約有一半以上的事務(wù)響應(yīng)時間超過腳本的等待時間,導(dǎo)致訪問失敗,頁面出現(xiàn)錯誤。

      對上述涉及的問題進(jìn)行優(yōu)化,可從以下幾個方面考慮:

      ①調(diào)整中間件參數(shù)設(shè)置,以達(dá)到最優(yōu)狀態(tài)。目前該項工作正在進(jìn)行調(diào)整及測試優(yōu)化;

      ②在有條件的情況下,建議將數(shù)據(jù)庫服務(wù)器與Web服務(wù)器分離[7-8],使其分工更加明確,保證運行效率,同時安全性更高;

      ③面對高并發(fā)的狀況,即便增加硬件,系統(tǒng)仍會存在訪問瓶頸。為了更好地適應(yīng)訪問需求,在條件允許的情況下,可對現(xiàn)有系統(tǒng)的軟件方面進(jìn)行架構(gòu)改造,比如引進(jìn)高性能、分布式的緩存系統(tǒng)等。

      3 結(jié)語

      本文基于Nginx負(fù)載均衡各項策略的工作原理和集群相關(guān)技術(shù),設(shè)計了一個負(fù)載均衡的服務(wù)器集群,搭建了校園網(wǎng)絡(luò)服務(wù)器。詳述了網(wǎng)絡(luò)服務(wù)器的安裝和配置步驟,實現(xiàn)了網(wǎng)絡(luò)請求內(nèi)容的反向代理,從而提高了學(xué)校網(wǎng)站的訪問速度、穩(wěn)定性和安全性。當(dāng)然,對于一個真正的大型網(wǎng)絡(luò)服務(wù)器,還有許多可改進(jìn)的地方,比如服務(wù)器高可用、動態(tài)頁面和靜態(tài)頁面分離、服務(wù)器緩存、URL重寫等方面。后續(xù)還會在此基礎(chǔ)上針對平臺的相關(guān)問題進(jìn)行改進(jìn),以減少服務(wù)器使用過程中的諸多困擾。

      參考文獻(xiàn):

      [1] [美]KARLKOPPER.Linux企業(yè)集群:用商用硬件和免費軟件構(gòu)件高可用集群[M].北京:水利水電出版社,2007.

      [2] 高俊峰.循序漸進(jìn)——Linux基礎(chǔ)知識、服務(wù)器搭建、系統(tǒng)管理、性能調(diào)優(yōu)、集群應(yīng)用[M].北京:人民郵電出版社,2009.

      [3] 楊永健.反向代理軟件SQUID在高校圖書館中的應(yīng)用[J].四川圖書館學(xué)報, 2007(3):59-62.

      [4] 李智慧.大型網(wǎng)站技術(shù)架構(gòu):核心原理與案例分析[M].北京:電子工業(yè)出版社,2013.

      [5] 陳小全,張繼紅.Linux服務(wù)器架設(shè)、性能調(diào)優(yōu)、集群管理教程——實訓(xùn)與項目案例[M].北京:北京郵電大學(xué)出版社,2011.

      [6] [法]CLEMENT NEDELCU.學(xué)習(xí)Nginx HTTP Server(中文版)[M].北京:清華大學(xué)出版社,2012.

      [7] 伍云輝.Linux服務(wù)器配置與管理指南[M].北京:清華大學(xué)出版社,2010:1-5.

      [8] 張宴.實戰(zhàn) Nginx:取代Apache的高性能Web服務(wù)器[M].北京:電子工業(yè)出版社,2010:3-10.

      [9] 木太里甫艾山.Linux環(huán)境下Qt庫多語言界面實現(xiàn)[J].軟件導(dǎo)刊,2016,15(5):21-23.

      (責(zé)任編輯:黃 ?。?

      猜你喜歡
      負(fù)載均衡集群
      集群式AUV可控分群控制算法
      一種無人機集群發(fā)射回收裝置的控制系統(tǒng)設(shè)計
      電子制作(2018年11期)2018-08-04 03:25:40
      Python與Spark集群在收費數(shù)據(jù)分析中的應(yīng)用
      勤快又呆萌的集群機器人
      異構(gòu)環(huán)境下改進(jìn)的LATE調(diào)度算法
      基于負(fù)載均衡的云資源調(diào)度策略研究
      多站點同步更新系統(tǒng)的設(shè)計
      科技視界(2016年3期)2016-02-26 20:16:57
      模糊理論在Ad hoc網(wǎng)絡(luò)通信領(lǐng)域的應(yīng)用
      科技視界(2015年25期)2015-09-01 16:07:00
      河池市| 卓资县| 会东县| 石家庄市| 惠安县| 洛阳市| 泸水县| 阳城县| 丹棱县| 祁连县| 三都| 塔河县| 义马市| 通山县| 保靖县| 双桥区| 赤水市| 文山县| 贵州省| 贡觉县| 陇西县| 绥江县| 怀集县| 禹州市| 顺昌县| 木兰县| 左权县| 宁陕县| 资中县| 湖北省| 滁州市| 通州区| 阳朔县| 南昌县| 崇礼县| 邻水| 祁门县| 钟山县| 阿鲁科尔沁旗| 西林县| 苏尼特左旗|