負(fù)載均衡是由多臺服務(wù)器以對稱方式組成服務(wù)器集群,每臺服務(wù)器都具等價關(guān)系,均可多帶帶對外提供服務(wù)且無需其他服務(wù)器輔助。通過對應(yīng)負(fù)載分擔(dān)均衡,將外部發(fā)送請求按既定規(guī)則分發(fā)到對稱集群架構(gòu)其中一臺服務(wù)器上,對應(yīng)接收請求服務(wù)器也獨立地回應(yīng)客戶端請求。均衡負(fù)載能夠平均分配客戶請求到服務(wù)器陣列,以快速獲取數(shù)據(jù),解決大并發(fā)訪問服務(wù)的洪峰問題。此種集群技術(shù)可用最少的投入獲得超高的性能,是一種性價比較高的并發(fā)解決方案之一。
負(fù)載均衡建立在網(wǎng)絡(luò)層之上,提供了一種廉價有效透明的方法擴(kuò)展網(wǎng)絡(luò)設(shè)備和服務(wù)器帶寬、增加吞吐量、加強網(wǎng)絡(luò)數(shù)據(jù)處理能力、提高網(wǎng)絡(luò)的靈活性和可用性。
負(fù)載均衡(LoadBalance)其原意就是前端請求分?jǐn)偟蕉鄠€操作單元進(jìn)行取數(shù)執(zhí)行操作,例如Web服務(wù)器、FTP服務(wù)器、企業(yè)關(guān)鍵應(yīng)用服務(wù)器和其它關(guān)鍵任務(wù)服務(wù)器等,從而共同完成工作任務(wù)。
這是一種比較古老的方式,目主要通過提供不同的線路、不同服務(wù)器鏈接的方式,來實現(xiàn)負(fù)載均衡。
這種方式在一些提供下載、在線影院、直播等網(wǎng)站比較常見。
1、部署簡單,新增服務(wù)器或鏈路只需增加對應(yīng)的入口即可
2、維護(hù)方便,如果有服務(wù)器宕機只需關(guān)閉對應(yīng)入口即可
1、智能化程度不高,需用戶手動切換
2、分配不可控,容易出現(xiàn)服務(wù)器訪問量極不平衡等情況
大多域名注冊商都支持多條A記錄的解析,這就是DNS輪詢,DNS服務(wù)器將解析請求按照A記錄的順序,逐一分配到不同的IP上,這樣就完成了簡單的負(fù)載均衡。
1、基本上無成本,因為往往域名注冊商的這種解析都是免費的;
2、部署方便,除了網(wǎng)絡(luò)拓?fù)涞暮唵螖U(kuò)增,新增的Web服務(wù)器只要增加一個公網(wǎng)IP即可。
1、健康檢查,如果某臺服務(wù)器宕機,DNS服務(wù)器是無法知曉的,仍舊會將訪問分配到此服務(wù)器。修改DNS記錄全部生效起碼要3-4小時,甚至更久;
2、分配不均,如果幾臺Web服務(wù)器之間的配置不同,能夠承受的壓力也就不同,但是DNS解析分配的訪問卻是均勻分配的。其實DNS也是有分配算法的,可以根據(jù)當(dāng)前連接較少的分配、可以設(shè)置Rate權(quán)重分配等等,只是目前絕大多數(shù)的DNS服務(wù)器都不支持;
現(xiàn)代負(fù)載均衡技術(shù)通常操作于OSI網(wǎng)絡(luò)模型的第四層或第七層。第四層負(fù)載均衡將一個Internet上合法注冊的IP地址映射為多個內(nèi)部服務(wù)器的IP地址,對每次TCP連接請求動態(tài)使用其中一個內(nèi)部IP第,達(dá)到負(fù)載均衡的目的。在第四層交換機中,此中均衡技術(shù)得到廣泛的應(yīng)用,一個目標(biāo)地址是服務(wù)器群VIP連接請求的數(shù)據(jù)包流經(jīng)交換機,交換機根據(jù)源端和目的IP地址、TCP或者UDP端口號和一定的負(fù)載策略,在服務(wù)器IP和VIP間進(jìn)行映射,選取服務(wù)器群眾最好的服務(wù)器來處理連接請求。
第七層負(fù)載均衡控制應(yīng)用層服務(wù)的內(nèi)容,提供一種對訪問流量的高層控制方式,適合對HTTP服務(wù)器群的應(yīng)用。第七層負(fù)載均衡技術(shù)通過檢查流經(jīng)的HTTP報頭,根據(jù)報頭內(nèi)的信息來執(zhí)行負(fù)載均衡任務(wù)。
硬件負(fù)載均衡交換機,代表有F5、array等。
軟件負(fù)載均衡器,Nginx/LVS/HAProxy是目前使用最廣泛的三種負(fù)載均衡軟件。
1.軟件四層負(fù)載均衡
代表作為LVS,LVS是一個開源的軟件,可以實現(xiàn)linux平臺下的簡單負(fù)載均衡。lvs集群采用IP負(fù)載均衡技術(shù)和基于內(nèi)容請求分發(fā)技術(shù)。調(diào)度器具有很好的吞吐率,將請求均衡的轉(zhuǎn)移到不同的服務(wù)器上執(zhí)行,且調(diào)度器自動屏蔽掉服務(wù)器的故障,從而將一組服務(wù)器構(gòu)成一個高性能的、高可用的虛擬服務(wù)器。整個服務(wù)器集群的結(jié)構(gòu)對客戶是透明的,而且無需修改客戶端和服務(wù)器端的程序。
LVS通過修改數(shù)據(jù)包Ip地址,Mac地址實現(xiàn)負(fù)載均衡。
LVS由ipvs(內(nèi)核中),ipvsadm(用戶態(tài))組成。LVS需要理解tcp,ip頭部。
當(dāng)tcp握手信號,SYN數(shù)據(jù)包達(dá)到時,ipvs選擇一個后端服務(wù)器,將數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā)。在此之后,所有包含相同的ip,tcp頭部的數(shù)據(jù)包都會被轉(zhuǎn)發(fā)到之前選擇的服務(wù)器上。很明顯,ipvs無法感知數(shù)據(jù)包內(nèi)容。
2.軟件的七層負(fù)載均衡
大多HTTP反向代理方式,代表產(chǎn)品有nginx、haproxy等,nginx的反向代理負(fù)載均衡能夠很好的支持虛擬主機,可配置性很強,可以按輪詢、IP哈希、URL哈希、權(quán)重等多種放肆對后端服務(wù)器做負(fù)載均衡,同時還支持后端服務(wù)器的健康檢查。
nginx負(fù)載均衡工作在7層,它會與client、upstream分別建立tcp連接,nginx需要維護(hù)這兩個連接的狀態(tài)。
nginx的stream模塊可以用于4層負(fù)載均衡,主要用于tcp、udp的負(fù)載均衡。
在輪循算法的基礎(chǔ)上加上權(quán)重,即為權(quán)重輪循算法,當(dāng)使用該算法時,權(quán)重和用戶訪問成正比,權(quán)重值越大,被轉(zhuǎn)發(fā)的請求也就越多。可以根據(jù)服務(wù)器的配置和性能指定權(quán)重值大小,有效解決新舊服務(wù)器性能不均帶來的請求分配問題。
upstream myapp1 {
server 172.1.1.103 weight=1;
server 172.1.1.104 weight=2;
}
每個請求按客戶端IP 的 hash結(jié)果分配,當(dāng)新的請求到達(dá)時,先將其客戶端IP通過哈希算法哈希出一個值,在隨后的客戶端請求中,客戶IP 的哈希值只要相同,就會被分配至同一臺服務(wù)器,該調(diào)度算法可以解決動態(tài)網(wǎng)頁的session 共享問題,但有時會導(dǎo)致請求分配不均,即無法保證1:1 的負(fù)載均衡,因為在國內(nèi)大多數(shù)公司都是NAT 上網(wǎng)模式,多個客戶端會對應(yīng)一個外部IP,所以,這些客戶端都會被分配到同一節(jié)點服務(wù)器,從而導(dǎo)致請求分配不均。LVS負(fù)載均衡的 -P參數(shù)、keepalived配置里的persistence_timeout 50 參數(shù)都類似這個Nginx 里的ip_hash 參數(shù),其功能均為解決動態(tài)網(wǎng)頁的session 共享問題。注意:當(dāng)負(fù)載調(diào)度算法為ip_hash時,后端服務(wù)器在負(fù)載均衡調(diào)度中的狀態(tài)不能有weight 和backup ,即使有也不會生效。
upstream myapp1 {
ip_hash;
server 172.1.1.103;
server 172.1.1.104;
}
按客戶端請求順序把客戶端的請求逐一分配到不同的后端節(jié)點服務(wù)器,如果后端節(jié)點服務(wù)器宕機(默認(rèn)情況下nginx只檢測80端口)。宕機的服務(wù)器會自動從節(jié)點服務(wù)器池中剔除,以便客戶端的用戶訪問不受影響。新的請求會分配給正產(chǎn)的服務(wù)器。
upstream myapp1 {
server 172.1.1.103;
server 172.1.1.104;
}
調(diào)度算法會根據(jù)后端節(jié)點服務(wù)器的響應(yīng)時間來分配請求,響應(yīng)時間短的優(yōu)先分配。這是更加智能的調(diào)度算法。此種算法可以依據(jù)頁面大小和加載時間長短智能地進(jìn)行負(fù)載均衡,也就是根據(jù)后端服務(wù)器的響應(yīng)時間來分配請求,響應(yīng)時間短的優(yōu)先分配。Nginx本身是不支持 fair調(diào)度算法的,如果需要使用這種調(diào)度算法,必須下載Nginx 的相關(guān)模塊upstream_fair。
upstream myapp1 {
fair;
server 172.1.1.103;
server 172.1.1.104;
}
按訪問URL 的 hash結(jié)果來分配請求,使每個URL定向到同一個后端服務(wù)器,可以進(jìn)一步提高后端緩存服務(wù)器的效率命中率。(多用于后端服務(wù)器為緩存時的場景下)Nginx本身是不支持rul_hash的,如果需要使用這種調(diào)度算法,必須安裝Nginx 的hash模塊軟件包。
upstream myapp1 {
server 172.1.1.103;
server 172.1.1.104;
hash $request_uri;
hash_method crc32;
}
在Nginxupstream模塊中,可以設(shè)定每臺后端服務(wù)器在負(fù)載均衡調(diào)度中的狀態(tài),常用的狀態(tài)有:
1、down,表示當(dāng)前的server暫時不參與負(fù)載均衡
2、backup,預(yù)留的備份機器。當(dāng)其他所有的非backup機器出現(xiàn)故障或者忙的時候,才會請求backup機器,因此這臺機器的訪問壓力最低
3、max_fails,允許請求失敗的次數(shù),默認(rèn)為1,當(dāng)超過最大次數(shù)時,返回proxy_next_upstream模塊定義的錯誤。
4、fail_timeout,請求失敗超時時間,在經(jīng)歷了max_fails次失敗后,暫停服務(wù)的時間。max_fails和fail_timeout可以一起使用。
upstream模塊控制HTTP的負(fù)載均衡。這個模塊定義了一個目的池,這個目的池可以用IP地址和DNS記錄,或者混合使用。
upstream模塊模塊還定義了任何單個請求是如何分配給任何上游服務(wù)器。
在下邊的例子中,srv1不參與負(fù)載,srv2只有在其他服務(wù)器宕機或忙時才參與負(fù)載,srv3、srv4參與負(fù)載,其中每六次srv3訪問五次,srv4一次。所有的請求被代理到服務(wù)組node,然后nginx負(fù)載均衡的分發(fā)請求。
nginx反向代理實現(xiàn)包括下面這些負(fù)載均衡HTTP、HTTPS、FastCGI、uwsgi,SCGI和memcached。
要配置HTTPS的負(fù)載均衡,只需使用“https”開頭的協(xié)議。
當(dāng)要設(shè)置FastCGI,uwsgi,SCGI,或者memcached的負(fù)載平衡,分別使用fastcgi_pass,uwsgi_pass,scgi_pass和memcached_pass指令。
upstream node {
server 192.9.191.31:8001 down;
server 192.9.191.31:8002 backup;
server www.aa.com:8003 weight=5;
server 192.9.191.31:8004 max_fail=1 fail_timeout=10s;
}
server{
listen 80;
server_name www.test.com test.com;
location / {
proxy_pass http://node;
}
}
Nginx使用了一個新的stream模塊來實現(xiàn)TCP負(fù)載均衡,這個模塊,類似于http和mail模塊,允許我們配置一組監(jiān)聽TCP連接的服務(wù)。允許你配置多個服務(wù)的TCP連接,通過在upstream的server組中配置proxy_pass指令。
TCP負(fù)載均衡支持Nginx原有的調(diào)度算法,包括輪詢調(diào)度,哈希(選擇一致)等。同時,調(diào)度信息數(shù)據(jù)也會和健壯性檢測模塊一起協(xié)作,為每個連接選擇適當(dāng)?shù)哪繕?biāo)上游服務(wù)器。
和其他upstream模塊一樣,TCP的stream模塊也支持自定義負(fù)載均和的轉(zhuǎn)發(fā)權(quán)重(配置weight),還有backup和down的參數(shù),用于踢掉失效的上游服務(wù)器。max_conns參數(shù)可以限制一臺服務(wù)器的TCP連接數(shù)量,根據(jù)服務(wù)器的容量來設(shè)置恰當(dāng)?shù)呐渲脭?shù)值,尤其在高并發(fā)的場景下,可以達(dá)到過載保護(hù)的目的。
stream{
upstream mysql_read {
server read1.example.com:3306 weight=5;
server read2.example.com:3306;
server 10.10.12.34:3306 backup;
}
server {
listen 3306;
proxy_pass mysql_read;
}
}
后端3臺tomcat服務(wù)器以2主一備的形式通過2臺nginx服務(wù)器實現(xiàn)負(fù)載均衡,同時nginx通過keepalived實現(xiàn)主備配置
nginx:172.1.1.106、172.1.1.107
VIP地址:172.1.1.108
tomcatIP:172.1.1.102、172.1.1.103、172.1.1.105
安裝java環(huán)境:
chmod +x jdk-6u16-linux-i586.bin
./jdk-6u16-linux-i586.bin
ln -s /usr/local/jdk-1.6.0-16/bin/java /usr/bin/java
ln -s /usr/local/jdk-1.6.0-16/bin/javac /usr/bin/javac
ln -s /usr/local/jdk-1.6.0-16 /usr/local/jdk
ln -s /usr/local/jdk-1.6.0-16/jre /usr/local/jre
tar zxvf apache-tomcat-6.0.20.tar.gz
mv apache-tomcat-6.0.20 /usr/local/tomcat
設(shè)置環(huán)境變量:
JAVA_HOME=/usr/local/jdk
export JAVA_HOME
JRE_HOME=/usr/local/jre
export JRE_HOME
CLASSPATH=/usr/local/tomcat/common/lib/:/usr/local/jdk/lib:/usr/local/jre/lib
export CLASSPATH
PATH=$PATH:/usr/local/tomcat/bin/:/usr/local/apache/bin:/usr/local/jdk/bin:/usr/local/jre/bin
export PATH
TOMCAT_HOME=/usr/local/tomcat
export TOMCAT_HOME
下載及安裝nginx:
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.7.tar.gz
tar zxvf pcre-7.7.tar.gz
cd pcre-7.7/
./configure
make && make install
wget http://sysoev.ru/nginx/nginx-0.7.17.tar.gz
tar zxvf nginx-0.7.17.tar.gz
cd nginx-0.7.17/
./configure --prefix=/usr/local/nginx
make && make install
nginx.conf配置文件,兩臺nginx服務(wù)器保持一致
user nobody nobody;
worker_processes 1;
pid /usr/local/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;
events
{
use epoll;
worker_connections 51200;
}
http{
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 8m;
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
upstream node
{
server 172.1.1.102:8080;
server 172.1.1.103:8080;
server 172.1.1.105:8080 backup;
}
server {
listen 80;
server_name test.com;
location / {
root /var/www ;
index index.jsp index.htm index.html;
proxy_redirect off;
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://node;
}
log_format access $remote_addr - $remote_user [$time_local] "$request"
$status $body_bytes_sent "$http_referer"
"$http_user_agent" $http_x_forwarded_for;
access_log /var/log/access.log access;
}
}
Keepalived下載安裝:
wget http://www.keepalived.org/software/keepalived-1.1.15.tar.gz
http://www.keepalived.org/software/keepalived-1.2.13.tar.gz
tar zxvf keepalived-1.1.15.tar.gz
cd keepalived-1.1.15
./configure
make
make install
cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
mkdir /etc/keepalived
cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/
cp /usr/local/sbin/keepalived /usr/sbin/
service keepalived start|stop
兩臺nginx服務(wù)器上keepalived配置文件
172.1.1.106主機:
ip avrrp_instance VI_INET1 {
state MASTER
interface eth0
virtual_router_id 53
priority 200
advert_int 1
authentication {
auth_type pass
auth_pass yourpass
}
virtual_ipaddress {
172.1.1.108
}
}
172.1.1.107主機:
vrrp_instance VI_INET1 {
state BACKUP
interface eth0
virtual_router_id 53
priority 100
advert_int 1
authentication {
auth_type pass
auth_pass yourpass
}
virtual_ipaddress {
172.1.1.108
}
}
以上步驟即可完成nginx主備下的負(fù)載均衡配置,具體負(fù)載策略大家可以根據(jù)現(xiàn)場環(huán)境實際情況進(jìn)行調(diào)整,配置僅供參考。
在流量陡增的互聯(lián)網(wǎng)面前,接口限流也是很有必要的,尤其是針對高并發(fā)的場景。Nginx的限流主要是兩種方式:限制訪問頻率和限制并發(fā)連接數(shù)。該案例就是一個通過限制單個IP并發(fā)連接數(shù)防止后端服務(wù)器過載的例子。
維護(hù)人員接到告警發(fā)現(xiàn)tuxedo中間件多個服務(wù)出現(xiàn)堵塞,嘗試擴(kuò)服務(wù)或重啟均無法解決。
對比業(yè)務(wù)量情況,發(fā)現(xiàn)同比環(huán)比均超30%以上
隨即調(diào)整nginx限流策略,配置及注釋如下
http {
include mime.types;
default_type application/octet-stream;
proxy_intercept_errors on;
#log_format main $remote_addr - $remote_user [$time_local] "$request"
# $status $body_bytes_sent "$http_referer"
# "$http_user_agent" "$http_x_forwarded_for";
#access_log logs/access.log main;
log_format main $remote_addr - $remote_user [$time_local] "$request"
$status $body_bytes_sent "$http_referer"
"$http_user_agent" "$http_x_forwarded_for";
log_format acc "$remote_addr $remote_user [$time_local] $request_method $uri $args $server_protocol"
" $status $body_bytes_sent $request_time $http_referer $upstream_addr $upstream_cache_status"
" $upstream_status $http_x_forwarded_for $cookie_route $http_host $http_user_agent <<$request_body>> <<$resp_body>> ";
access_log logs/access_acc$hostname$year$month$day.log acc ;
sendfile on;
tcp_nopush on;
keepalive_timeout 65;
client_header_timeout 60;
client_body_timeout 60;
reset_timedout_connection on;
send_timeout 60;
server_tokens off;
proxy_next_upstream error timeout;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $http_x_forwarded_for;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 65;
proxy_send_timeout 120;
proxy_read_timeout 120;
proxy_buffer_size 8k;
proxy_buffers 8 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
proxy_http_version 1.1;
limit_conn_zone $binary_remote_addr zone=one:10m;
##定義一個10M的名字為one的內(nèi)存區(qū)域,用于記錄訪問頻次;
upstream dt_cluster {
server 172.1.1.230:17001;
server 172.1.1.230:17002;
server 172.1.1.230:17003;
server 172.1.1.230:17004;
keepalive 32;
check interval=5000 rise=2 fall=3 timeout=10000;
}
lua_package_path "/usr/local/nginx/lua/lua-resty-redis/lib/?.lua;;";
#gzip on;
server {
listen 7001;
listen 7002;
listen 7003;
listen 7004;
#server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
set $resp_body "";
location /OpenEbus {
proxy_pass http://dt_cluster;
# include body_filter_by_lua.conf;
# lua_need_request_body on;
# body_filter_by_lua
# local resp_body = string.sub(ngx.arg[1], 1, 1000)
# ngx.ctx.buffered = (ngx.ctx.buffered or "") .. resp_body
# if ngx.arg[2] then
# ngx.var.resp_body = ngx.ctx.buffered
# end
# ;
limit_conn one 250;
##限制并發(fā)連接最多250個;
}
location /hello {
default_type text/plain;
content_by_lua ngx.say("hello, lua");
}
location /mockService {
proxy_pass http://dt_cluster;
}
location / {
return 403;
}
}
}
通過使用limit_conn_zone 和limit_conn 對某個目錄或指定后綴,比如.html或.jpg進(jìn)行并發(fā)連接限制。有了連接數(shù)限制,相當(dāng)于限制了客戶端瀏覽器和Nginx之間的管道個數(shù),瀏覽器通過管道運輸請求,如同向自來水管中放水,水的流速和壓力對于管道另外一端是有影響的。為了防止不信任的客戶端通過這個管道瘋狂發(fā)送請求,消耗CPU內(nèi)存等資源,以及防止URL不斷發(fā)出連接請求,必須對請求的速度進(jìn)行限制,如同對水流速度限制一樣。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/130213.html
摘要:負(fù)載均衡與緩存服務(wù)也是屬于的實用場景之一,因為模塊相對重要,所以沒有一同放入入門到實戰(zhàn)場景實現(xiàn)篇文章中,將其單獨提取出來一負(fù)載均衡負(fù)載均衡的實現(xiàn)方法就是我們上章介紹的反向代理。 負(fù)載均衡與緩存服務(wù)也是屬于 nginx 的實用場景之一,因為模塊相對重要,所以沒有一同放入 Nginx入門到實戰(zhàn)(2)場景實現(xiàn)篇 文章中,將其單獨提取出來 一、負(fù)載均衡 負(fù)載均衡的實現(xiàn)方法就是我們上章介紹的反向...
摘要:負(fù)載均衡與緩存服務(wù)也是屬于的實用場景之一,因為模塊相對重要,所以沒有一同放入入門到實戰(zhàn)場景實現(xiàn)篇文章中,將其單獨提取出來一負(fù)載均衡負(fù)載均衡的實現(xiàn)方法就是我們上章介紹的反向代理。 負(fù)載均衡與緩存服務(wù)也是屬于 nginx 的實用場景之一,因為模塊相對重要,所以沒有一同放入 Nginx入門到實戰(zhàn)(2)場景實現(xiàn)篇 文章中,將其單獨提取出來 一、負(fù)載均衡 負(fù)載均衡的實現(xiàn)方法就是我們上章介紹的反向...
摘要:注意本篇文章為負(fù)載均衡的理論篇后續(xù)找個機會推出實戰(zhàn)篇。理論篇主要講述如何配置負(fù)載均衡配置負(fù)載均衡不難。常用的狀態(tài)有,表示當(dāng)前的暫時不參與負(fù)載均衡。注,當(dāng)負(fù)載調(diào)度算法為時,后端服務(wù)器在負(fù)載均衡調(diào)度中的狀態(tài)不能是和。 注意,本篇文章為負(fù)載均衡的理論篇,后續(xù)找個機會推出實戰(zhàn)篇。理論篇主要講述如何配置負(fù)載均衡,配置負(fù)載均衡不難。但實戰(zhàn)中要要注意幾個點,比如如何做到多服務(wù)器之間的數(shù)據(jù)共享(ses...
摘要:服務(wù)教程在它提出十多年后的今天,已經(jīng)成為最重要的應(yīng)用技術(shù)之一。全方位提升網(wǎng)站打開速度前端后端新的技術(shù)如何在內(nèi)完整打開網(wǎng)站會直接影響用戶的滿意度及留存率,在前端后端數(shù)據(jù)緩存加速等等方面都有諸多可以提升。 HTTPS 原理剖析與項目場景 最近手頭有兩個項目,XX 導(dǎo)航和 XX 產(chǎn)業(yè)平臺,都需要使用 HTTPS 協(xié)議,因此,這次對 HTTPS 協(xié)議做一次整理與分享。 使用緩存應(yīng)該注意哪些問題...
閱讀 1356·2023-01-11 13:20
閱讀 1707·2023-01-11 13:20
閱讀 1215·2023-01-11 13:20
閱讀 1906·2023-01-11 13:20
閱讀 4165·2023-01-11 13:20
閱讀 2757·2023-01-11 13:20
閱讀 1402·2023-01-11 13:20
閱讀 3671·2023-01-11 13:20