在线欧美国产_国产精品久久久久久久不卡_青青小草AV一区二区三区_中文伊人_欧美一级艳情片免费观看_国产无线乱码一区二三区

如何優化中大型網站建設的結構
  • 更新時間:2025-06-08 19:05:38
  • 網站建設
  • 發布時間:2年前
  • 395

以上網站架構在北京大中型網站建設中得到廣泛應用。本文分析了架構各層所采用的主流技術和解決方案,有助于剛接觸網站運維的朋友進一步了解網站架構,形成一套架構概念。第一層:CDN

CDN

國內網絡分布主要以華南電信和華北聯通為主,跨區域訪問時延問題較大。對于有一定流量的網站,加入CDN(Content Delivery Network)層可以有效改善這種現象,也是網站加速的最佳選擇。 CDN將網站頁面緩存在分布在全國各地的節點上,用戶訪問時就近機房獲取數據,大大減少了網絡訪問的路徑。如果要自己搭建CDN,不推薦,因為什么?其實說白了就是不堵運維。 CDN架構的部署并不復雜,但是影響效果的因素很多,后期的管理維護也比較復雜。要達到預期的效果并不容易。這是一份吃力不討好的工作。結果老板還是覺得你能力不夠。建議找一家專門做CDN的公司,費用不貴,有抗流量攻擊的能力,效果也很好,運維也少了很多麻煩,何樂而不為呢!第二層:反向代理(網頁緩存)

反向代理

如果CDN沒有緩存要請求的數據,就會向這一層發起請求,在代理服務器上配置緩存功能(本地),代理服務器會檢查本地緩存是否有CDN請求的數據,如果有則直接返回給CDN,如果沒有則request 后端負載均衡器再轉發給WEB服務器返回數據給代理服務器,代理服務器再將結果發送給CDN。代理服務器一般會緩存不經常變化的靜態頁面,如image、js、css、html等,主流的緩存軟件有Squid、Varnish、Nginx等。第三層:負載均衡

負載均衡

訪問量大的網站會使用負載均衡,因為這是解決單臺服務器性能瓶頸的最好辦法。反向代理將請求轉發給負載均衡器,負載均衡器根據算法(輪訓、負載條件選擇等)傳遞給后端WEB服務進行處理,并將數據直接返回給反向代理服務器WEB服務處理完成后。負載均衡將請求合理分配到多個后端WEB服務器,減少單臺服務器的并發負載,保證服務的可用性。主流的負載均衡軟件有LVS、HAProxy、Nginx。第四層:WEB服務

WEB服務

WEB服務用于處理用戶請求,WEB服務的處理效率直接影響訪問速度。為避免此因素造成訪問速度變慢,應進行調優,使WEB服務發揮最佳性能。常見的Web 服務包括Apache 和Nginx。Apache優化:

1).mod_deflate壓縮模塊

檢查是否加載:

#apachectl M | grep放氣

如果沒有安裝,用apxs編譯:

# /usr/local/apache/bin/apxs c I A Apache 源碼目錄/modules/mod_deflate.c

放氣配置參數:

DeflateCompressionLevel6 #壓縮級別(1-9),數值越大,效率越高,CPU消耗也越高

SetOutputFilterDEFLATE #啟用壓縮

AddOutputFilterByTypeDEFLATE text/html text/plain text/xml #壓縮類型

AddOutputFilterByTypeDEFLATE css js html htm xml php

2).mod_expires緩存模塊

檢查是否加載:

#apachectl M | grep 過期

如果沒有安裝,用apxs編譯:

# /usr/local/apache/bin/apxs c I A Apache 源碼目錄/modules/mod_expires.c

然后在httpd.conf中啟用模塊:LoadModule expires_module modules/mod_expires.so

緩存機制有三種用法:全局、目錄、虛擬主機

全局配置,在配置文件末尾添加:

> ExpiresActiveon #啟用有效期控制,會自動清除已過期的緩存,然后從服務器獲取新的
ExpiresDefault "accessplus 1 days" #默認任意格式的文檔都是1天后過期
ExpiresByTypetext/html "access plus 12 months"
ExpiresByTypeimage/jpg "access plus 12 months" #jpg格式圖片緩存12月

3).工作模式選擇及優化

apache有兩種常見工作模式,worker和prefork,默認是worker,是混合型的MPM(多路處理模塊),支持多進程和多線程,由線程來處理請求,所以可以處理更多請求,提高并發能力,系統資源開銷也小于基于進程的MPM,由于線程使用進程內存空間,進程崩潰會導致其下線程崩潰。而prefork是非線程型MPM,進程占用系統資源也比worker多,由于進程處理連接,在工作效率上也比worker更穩定。可通過apache2 l查看當前工作模式,在編譯時使用—with-mpm參數指定工作模式。根據自己業務需求選擇不同工作模式,再適當增加工作模式相關參數,可提高處理能力。

Nginx優化:

1).gzip壓縮模塊

http {
……
gzip on;
gzip_min_length 1k; #允許壓縮的頁面最小字節數,默認是0,多大都壓縮,小于1k的可能適得其反
gzip_buffers 4 16k; #gzip申請內存的大小,按數據大小的4倍去申請內存
gzip_http_version 1.0; #識別http協議版本
gzip_comp_level 2; #壓縮級別,1壓縮比最小,處理速度最快,9壓縮比最大,處理速度最慢
gzip_types text/plainapplication/x-javascripttext/css application/xml image/jpg; #壓縮數據類型
gzip_vary on; #根據客戶端的http頭來判斷,是否需要壓縮
}

2).expires緩存模塊

server {
location ~ .*.(gif|jpg|png|bmp|swf)$ #緩存數據后綴類型
{
expires 30d; #使用expires緩存模塊,緩存到客戶端30天
}
location ~ .*.( jsp|js|css)?$
{
expires 1d;
}
}

3).fastcgi優化

nginx不支持直接調用或者解析動態程序(php),必須通過fastcgi(通用網關接口)來啟動php-fpm進程來解析php腳本。也就是說用戶請求先到nginx,nginx再將動態解析交給fastcgi,fastcgi啟動php-fpm解析php腳本。所以我們有必要對fastcgi和php-fpm進行適當的參數優化。

http {
……
fastcgi_cache_path/usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10m inactive=5m;
# FastCGI緩存指定一個文件路徑、目錄結構等級、關鍵字區域存儲時間和非活動刪除時間
fastcgi_connect_timeout 300; #指定連接到后端FastCGI的超時時間
fastcgi_send_timeout 300; #指定向FastCGI傳送請求的超時時間
fastcgi_read_timeout 300; #指定接收FastCGI應答的超時時間
fastcgi_buffer_size 64k; #指定讀取FastCGI應答第一部分需要多大的緩沖區
fastcgi_buffers 4 64k; #指定本地需要用多少盒多大的緩沖區來緩沖FastCGI的應答請求
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k; #表示在寫入緩存文件時使用多大的數據塊,默認值是fastcgi_buffers的兩倍
fastcgi_cache TEST; #開啟fastcgi_cache緩存并指定一個TEST名稱
fastcgi_cache_valid 200 302 1h; #指定200、302應答代碼的緩存1小時
fastcgi_cache_valid 301 1d; #將301應答代碼緩存1天
fastcgi_cache_valid any 1m; #將其他應答均緩存1分鐘
{
php-fpm.conf配置參數:

pm =dynamic #兩種控制子進程方式(static和dynamic)
pm.max_children= 5 #同一時間存活的最大子進程數
pm.start_servers= 2 #啟動時創建的進程數
pm.min_spare_servers= 1 #最小php-fpm進程數
pm.max_spare_servers= 3 #最大php-fpm進程數

4).proxy_cache本地緩存模塊

http {
……
proxy_temp_path /usr/local/nginx/proxy_cache/temp; #緩存臨時目錄
proxy_cache_path /usr/local/nginx/proxy_cache/cache levels=1:2 keys_zone=one:10m inactive=1d max_size=1g;
#緩存文件實際目錄,levels定義層級目錄,1:2說明1是一級目錄,2是二級目錄,keys_zone存儲元數據,并分配10M內存空間。inctive表示1天沒有被訪問的緩存就刪除,默認10分鐘。max_size是最大分配磁盤空間
server {
listen 80;
server_name 192.168.1.10;
location / {
proxy_cache one; #調用緩存區
#proxy_cache_valid 200 304 12h; #可根據HTTP狀態碼設置不同的緩存時間
proxy_cache_valid any 10m; #緩存有效期為10分鐘
}
#清除URL緩存,允許來自哪個網段的IP可以清除緩存(需要安裝第三方模塊"ngx_cache_purge"),清除URL緩存方法:訪問http://192.168.1.10/purge/文件名
location ~ /purge(/.*){
allow 127.0.0.1;
allow 192.168.1.0/24;
deny all;
proxy_cache_purge cache_one$host$1$is_args$args;
}
}

營銷型網站建設推來客總結:

啟用壓縮模塊可以節省一部分帶寬,會增加WEB端CPU處理,但在上圖網站架構中,WEB端啟用壓縮模塊并沒有起到作用,因為傳輸到上層走的是局域網。對于直接面向用戶的架構還是要啟用的。WEB也不用啟用expires模塊,因為有了反向代理服務器和CDN,所以到不了用戶瀏覽器,開啟起不到作用。

如果反向代理使用nginx做代理,可開啟expires模塊,將靜態文件緩存到用戶瀏覽器,瀏覽器發起請求時,先判斷本地緩存是否有請求的數據,如果有再判斷是否過期,如果不過期就直接瀏覽緩存數據,哪怕服務器資源已經改變,所以要根據業務情況合理設置過期時間。

5. 利用PHP緩存器提高代碼執行效率

php程序在沒有使用緩存器情況下,每次請求php頁面,php都會對此頁面進行代碼編譯,這就意味著重復的編譯工作會增加服務器負載。有了緩存器就會把每次編譯后的數據緩存到共享內存中,下次訪問直接使用緩沖區已編譯好的代碼,從而避免重復的編譯過程,以加快其執行效率。因此PHP網站使用緩存器是完全有必要的!主流的PHP緩存器有:eAccelerator、XCache

第五層:動靜分離

動靜分離,顧名思義,是將動態頁面和靜態頁面分離到不同服務器上處理,比如使用web是nginx,可以讓fastcgi部署到單獨一臺服務器,專門解析php動態頁面,靜態頁面默認由nginx處理,并做好緩存策略。再比如一個商城網站,會有大量的圖片,可以考慮增加文件服務器組,將請求圖片和上傳圖片的都交給文件服務器處理。文件服務器主流使用NFS,存在單點故障,可以DRBD+HeartBeat+NFS部署高可用,如果單臺壓力過大,考慮使用分布式文件系統,如GlusterFS、MooseFS等。

第六層:數據庫緩存

數據庫緩存

利用緩存技術,把熱數據緩存到內存中,如果請求的數據在緩存中,就直接返回,否則去數據庫中取,并更新把拿的數據更新到緩存系統,提高讀性能,降低數據庫壓力。緩存實現有本地緩存和分布式緩存,本地緩存是將數據緩存到本地服務器內存中或者文件中。分布式緩存是將數據緩存到內存中,是分布式的,可以緩存海量數據,擴展性好。主流的分布式緩存系統有Memcached和Redis,Memcached性能穩定,速度很快,QPS可達8w左右。如果想數據持久化就選擇用Redis,性能不低于Memcached。

第七層:數據庫

數據庫

這層在整個網站架構中起著主導型作用,直接決定用戶體驗,相對架構優化也比較復雜。

核心思路:減少請求層,盡可能讓前端層返回用戶請求的數據,減少后端服務器訪問頻率,最重要是數據庫層。

我們專注高端建站,小程序開發、軟件系統定制開發、BUG修復、物聯網開發、各類API接口對接開發等。十余年開發經驗,每一個項目承諾做到滿意為止,多一次對比,一定讓您多一份收獲!

本文章出于推來客官網,轉載請表明原文地址:https://www.tlkjt.com/web/12052.html
推薦文章

在線客服

掃碼聯系客服

3985758

回到頂部

主站蜘蛛池模板: 朋友的母亲免费 | 国产台湾无码av片在线观看 | 成人综合在线观看 | 国产黄A三级三级三级 | 末发育女AV片一区二区 | 中文字幕一区二区在线播放 | 青青久热 | 国产成人一级在线观看 | 中文字幕无码成人免费视频 | 欧美性狂猛xxxxx深喉 | 婷婷视频一区二区三区 | 色婷婷精品国产一区二区三区 | 一区二区三区蜜桃 | chinese国产高清av内谢 | 无码高潮又爽又黄A片软件 精品国产AV无码一区二区三区 | 麻豆影院在线播放 | 毛片av免费观看 | 亚洲日本一区二区三区在线 | 欧美黑人巨大久久久精品一区小蓝 | 在线视频一区二区三区三区不卡 | 亚洲草草网 | 男人J放进女人P全黄在线 | 免费观影入口看日本视频 | 国产午夜理论在线成人 | 97久久综合 | 国产精品视频在线免费观看 | 久久中国精品 | 性插视频 | 无码视频免费一区二三区 | 99re视频在线 | 香港日本三级亚洲三级 | 在线看黄V免费网站免费 | 久久精品片 | 欧美一级二级三级视频 | 久久爱黑人激情av摘花 | 国产91香蕉视频 | 亚洲欧美小视频 | 亚洲清纯国产 | a毛毛片 | av大全在线免费看 | www.影院 |