日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
【博文推薦】微信營(yíng)銷業(yè)務(wù)生產(chǎn)環(huán)境下的負(fù)載均衡配置
本博文出自博客waring_id博主,有任何問題請(qǐng)進(jìn)入博主頁面互動(dòng)討論!
博文地址:http://waringid.blog./65148/1606122

一、簡(jiǎn)介

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡(jiǎn)單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:主機(jī)域名、虛擬空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、石門網(wǎng)站維護(hù)、網(wǎng)站推廣。

最近新上了一個(gè)營(yíng)銷項(xiàng)目(和微信結(jié)合),后臺(tái)用的是Tomcat。開始上線的時(shí)候因?yàn)槿藬?shù)不多感覺沒太多問題,隨著正式環(huán)境的發(fā)布,開人有人反映服務(wù)器頁面無法打開,連入tomcat查看時(shí)發(fā)現(xiàn)連接數(shù)已滿且CPU也用到了極限,初始的架構(gòu)如下圖所示,其使用1臺(tái)tomcat和一臺(tái)數(shù)據(jù)庫服務(wù)器。

該業(yè)務(wù)系統(tǒng)主要用于微信營(yíng)銷,顧客在微信上下單購買(搶)對(duì)應(yīng)的商品,搶購成功后該商品(券)會(huì)自動(dòng)生成條形碼保存在該用戶的注冊(cè)信息中。用戶憑券到實(shí)體店完成支付和取貨操作。因?yàn)樯婕叭虽N的問題(支付完成后即時(shí)核銷),因此該業(yè)務(wù)無法放在云端(核銷的數(shù)據(jù)和實(shí)體店銷售數(shù)據(jù)需即時(shí)交互),最終只能通過本地的方案來解決。

首先考慮到的是將網(wǎng)上的連接通過負(fù)載均衡的方式分散來減輕服務(wù)器的壓力,這方面可以使用nginx代理來實(shí)現(xiàn);其次需要解決的問題是session,對(duì)比了幾種方案發(fā)現(xiàn)nginx內(nèi)置的ip_hash策略可以解決該問題,最終網(wǎng)絡(luò)的架構(gòu)變成了下圖所示,在該方案中增加了4臺(tái)服務(wù)器,其中一臺(tái)nginx負(fù)載轉(zhuǎn)發(fā),另外四臺(tái)為新增的tomcat服務(wù)。

二、安裝Nginx

Nginx的安裝配置十分簡(jiǎn)單,我這里實(shí)際用的是tengine版本,具體的安裝方法可以參考” nginx配置指南之一”。這里需要注意的是它的編譯參數(shù),記得它的配置文件和日志文件的存放位置。

三、優(yōu)化系統(tǒng)資源

文件限制

Linux系統(tǒng)中文件的打開個(gè)數(shù)及單用戶最多擁有的進(jìn)程數(shù)是有限制的,可以通過“ulimit -n”或“ulimit -u”來查看,詳細(xì)的設(shè)置可以參考“ORACLE 11G在Linux下的標(biāo)準(zhǔn)安裝方法(上)”。先修改/etc/security/limit.conf中的限制,如下圖所示。

內(nèi)核優(yōu)化

內(nèi)核中涉及的TCP相關(guān)的選項(xiàng)在大并發(fā)連接的情況下也需要做相應(yīng)的調(diào)整否則可以出“TCP: time wait bucket table overflow” 的錯(cuò)誤提示。具體修改/etc/sysctl.conf文件,如有特殊要求請(qǐng)結(jié)合實(shí)際情況修改。具體如下所示:

tcp_max_tw_buckets    系統(tǒng)在同時(shí)所處理的最大 timewait sockets 數(shù)目。如果超過此數(shù)的話﹐time-waitsocket 會(huì)被立即刪除并且顯示警告信息。

ip_local_port_range    用于向外連接的端口范圍。

netdev_max_backlog    每個(gè)網(wǎng)絡(luò)接口接收數(shù)據(jù)包的速率比內(nèi)核處理這些包的速率快時(shí),允許送到隊(duì)列的數(shù)據(jù)包的最大數(shù)目,對(duì)重負(fù)載服務(wù)器而言,該值需要調(diào)高一點(diǎn)。

tcp_max_orphans    處理不屬于任何進(jìn)程的套接字?jǐn)?shù)量,不屬于任程進(jìn)程的進(jìn)程就是“孤兒(orphans)進(jìn)程”,在快速、大量的連接中這種進(jìn)程會(huì)很多因此要適當(dāng)?shù)脑O(shè)置該參數(shù),也可以用來防御簡(jiǎn)單的DoS攻擊。

tcp_max_syn_backlog    用于記錄尚未收到客戶端確認(rèn)信息的連接請(qǐng)求的最大值。

四、優(yōu)化Nginx

epoll為linux下的必須模型,適用于2.6以后的內(nèi)核版本,如下圖所示:

優(yōu)化代理配置

需要注意的是“proxy_max_temp_file_size”,它主要用來設(shè)置臨時(shí)文件的最大值。當(dāng)被請(qǐng)求的文件內(nèi)容大于代理緩存的大小時(shí),該文件會(huì)被存儲(chǔ)到這個(gè)臨時(shí)文件,但是如果被請(qǐng)求文件的內(nèi)容大于這個(gè)值的時(shí)候,那么將會(huì)從上游的服務(wù)器(被代理的服務(wù)器)上直接同步傳遞,而不再使用代理緩存。該指令的默認(rèn)值為1GB,如果設(shè)置為0,那么意味著禁止使用臨時(shí)文件。

五、配置Nginx

Nginx配置如下所示,其中upstreambackend配置的是后端的tomcat應(yīng)用,ip_hash表示啟用該策略,用戶的目的是為了解決后端session不一致的問題(在nginx前端還有CDN或是局域網(wǎng)的環(huán)境中須慎用)。

server段配置的是轉(zhuǎn)發(fā)的路徑和端口,需要注意“proxy_set_header Host $host:8162;”的寫法。如果該變量后沒有加8162端口則實(shí)際的轉(zhuǎn)發(fā)會(huì)導(dǎo)致頁面無法正常顯示。其后的兩條語句可以參考nginx日志的記錄內(nèi)容,主要用來記錄外網(wǎng)實(shí)際的訪問請(qǐng)求。

log_format字段用來生成指定的日志格式文件,相應(yīng)的變量對(duì)應(yīng)日志文件中的訪問記錄,可以對(duì)照下圖來查看。

六、Nginx安全限制

隨著業(yè)務(wù)的增加,網(wǎng)絡(luò)連接的流量越來越大,合理的控制訪問請(qǐng)求及連接數(shù)非常重要,否則仍會(huì)出現(xiàn)失去響應(yīng)的情況。

七、增加IP限制功能

最簡(jiǎn)單也最容易實(shí)現(xiàn)的的方式是Nginx自帶的IP訪問控制,由模塊ngx_http_limit_conn_module和來ngx_http_limit_req_module實(shí)現(xiàn),通過它們可以實(shí)現(xiàn)對(duì)IP地址連接數(shù)及服務(wù)器訪問請(qǐng)求數(shù)的控制。

要限制連接,必須先有一個(gè)容器對(duì)連接進(jìn)行計(jì)數(shù),在http段加入如下代碼:"zone=" 給它一個(gè)名字,可以隨便叫,這個(gè)名字要跟下面的limit_conn 一致,$binary_remote_addr = 用二進(jìn)制來儲(chǔ)存客戶端的地址,1m 可以儲(chǔ)存 32000 個(gè)并發(fā)會(huì)話。

限制請(qǐng)求數(shù)的方式和限制連接數(shù)類似,其中“rate=10r/s”表示一秒中處理的請(qǐng)求為10個(gè),如果需要限制為每分鐘不超過30個(gè)則表示為“rate=30r/m”;一個(gè)具體的設(shè)定如下所示:

 
 
  1. http {   
  2. limit_req_zone$binary_remote_addr zone=one:10m rate=10r/s;   
  3. limit_conn_zone$binary_remote_addr zone=two:10m;   
  4.      } 

在server段中加入以下內(nèi)容,其中“burst=5”表示同時(shí)允許超過頻率限制的請(qǐng)求數(shù)不多于5個(gè);“l(fā)imit_conn two 15”表示對(duì)于同一IP的連接數(shù)限制為15個(gè)。

 
 
  1. limit_req zone=one burst=5;   
  2. limit_conn two 15; 

后續(xù)WAF模塊的添加以及nginx相關(guān)的監(jiān)控待整理。PS:請(qǐng)關(guān)注官方博客。


文章題目:【博文推薦】微信營(yíng)銷業(yè)務(wù)生產(chǎn)環(huán)境下的負(fù)載均衡配置
當(dāng)前路徑:http://m.5511xx.com/article/djdscsd.html