建設(shè)一個網(wǎng)站需要的空間有哪些方法病毒式營銷方法
目錄
一、Nginx反向代理
1、什么是代理
2、實(shí)現(xiàn)反向代理實(shí)驗(yàn)
①實(shí)驗(yàn)拓?fù)?/p>
②實(shí)驗(yàn)?zāi)康?/p>
③實(shí)驗(yàn)過程
二、反向代理負(fù)載均衡
1、反向代理負(fù)載均衡調(diào)度算法
①輪詢算法
②加權(quán)輪詢算法
③最小連接數(shù)算法
④ip、url? 哈希算法
⑤響應(yīng)時間fair算法
2、實(shí)現(xiàn)反向代理負(fù)載均衡實(shí)驗(yàn)
①實(shí)驗(yàn)拓?fù)?/p>
②實(shí)驗(yàn)?zāi)康?/p>
③實(shí)驗(yàn)過程
一、Nginx反向代理
1、什么是代理
代理分為兩類,正向代理和反向代理。
正向代理:幫助用戶訪問服務(wù)器,緩存服務(wù)器內(nèi)容。
反向代理:代理服務(wù)器處理用戶的請求,決定轉(zhuǎn)發(fā)請求給誰處理負(fù)載均衡的作用。
2、實(shí)現(xiàn)反向代理實(shí)驗(yàn)
nginx可以代理七層(應(yīng)用層)和四層(網(wǎng)絡(luò)層),代理七層代理比四層代理看到的東西多功能強(qiáng)大,可以看到真實(shí)數(shù)據(jù)。
使用模塊: proxy_pass? ?反向代理的服務(wù)器地址或域名;
①實(shí)驗(yàn)拓?fù)?/h3>
②實(shí)驗(yàn)?zāi)康?/h3>
由pc2代理服務(wù)器,代理服務(wù)端pc3處理用戶pc1的請求。
③實(shí)驗(yàn)過程
①首先準(zhǔn)備三臺虛擬機(jī)且關(guān)閉防火墻和selinux,其中pc2和pc3安裝nginx。
pc2、pc3執(zhí)行:
yum install epel-release -y
yum install nginx -y
#安裝nginx
②pc2和pc3上創(chuàng)建子配置文件test.conf
pc2、pc3執(zhí)行:
cd /etc/nginx/conf.d/
touch test.conf
#進(jìn)入子配置文件目錄創(chuàng)建子配置文件
③服務(wù)端pc3子配置文件內(nèi)容
server {root /etc/nginx/html;
#指定虛擬主機(jī)根目錄
}
④創(chuàng)建服務(wù)端pc3虛擬主機(jī)的根目錄,并寫默認(rèn)內(nèi)容為this is pc3在index.html中
mkdir -p /etc/nginx/html;
echo "this is pc3">/etc/nginx/html/index.html
#遞歸創(chuàng)建文件夾并設(shè)置默認(rèn)主頁內(nèi)容
⑤反向代理服務(wù)器pc2的配置文件內(nèi)容:
server {listen 80;
#監(jiān)聽所有80端口server_name www.lhj.com;
#創(chuàng)建虛擬主機(jī)www.lhj.com
location /{
proxy_pass http://192.168.30.13
#訪問反代的虛擬主機(jī)www.lhj.com則由192.168.30.13處理請求
}
}
⑥代理服務(wù)和服務(wù)端開啟nginx服務(wù),并在pc1客戶端添加www.lhj.com的對應(yīng)hosts文件進(jìn)行測試
pc2、pc3執(zhí)行:
systemctl start nginx
pc1執(zhí)行:
sed -i '1a\192.168.30.12 www.lhj.com' /etc/hosts
#在/etc/hosts文件的第一行添加192.168.30.12 www.lhj.com內(nèi)容
curl www.lhj.com
#訪問反向代理服務(wù)器
得到內(nèi)容
this is pc3
二、反向代理負(fù)載均衡
nginx反向代理負(fù)載均衡中用的是upstream模塊,應(yīng)用于http模塊中,目的為可為所有server模塊提供服務(wù),默認(rèn)算法為輪詢。
使用格式:
upstream? ? name(反代名稱){
server? ?后端服務(wù)器地址? ?[算法]? [其他配置] ;
}
其他配置:①max_conns=數(shù)字;設(shè)置最大活動連接數(shù),默認(rèn)為0表示無限制
? ? ? ? ? ? ? ? ? ②max_fails=數(shù)字;后端服務(wù)器下載條件,對本次調(diào)度選擇的后端服務(wù)器進(jìn)行連續(xù)檢查,如果都失敗標(biāo)記不可用,默認(rèn)1次
? ? ? ? ? ? ? ? ? ③fail_timeout=time;后的服務(wù)器上行時間,壞掉后修復(fù)需要檢查多久才能上線使用,默認(rèn)檢查10s
? ? ? ? ? ? ? ? ? ④backup 設(shè)置為備份服務(wù)器,所有服務(wù)器不可用時使用此服務(wù),注意不能指定自己;
? ? ? ? ? ? ? ? ? ⑤down 指定此服務(wù)器down狀態(tài),無論本身是什么狀態(tài);
1、反向代理負(fù)載均衡調(diào)度算法
①輪詢算法
默認(rèn)算法是輪詢算法即反向代理服務(wù)器處理用戶請求時,每個后端服務(wù)器都輪流給。
upstream? ?lhj{? ?server ????????http://192.168.30.11;
? ? ? ? ? ? ? ? ? ? ? ? ? server? ? ? ? http://192.168.30.12;
}
②加權(quán)輪詢算法
在默認(rèn)輪詢的基礎(chǔ)上增加權(quán)重,weight=number。如果后端有2個服務(wù)器其中一個配置權(quán)重為weight=3另外一個不配置默認(rèn)是1,則有用戶訪問時分配給給有權(quán)重的服務(wù)器和不配置權(quán)重的服務(wù)器的比例為3:1。
upstream? ?lhj{? ?server ????????http://192.168.30.11? ? ? ? weight=3;
? ? ? ? ? ? ? ? ? ? ? ? ? server? ? ? ? http://192.168.30.12;
}
③最小連接數(shù)算法
按照nginx反向代理服務(wù)器和后端服務(wù)器的連接數(shù)分配請求,連接越少的分配處理請求優(yōu)先級越高。例如若最小連接數(shù)(least_conn;)是設(shè)置是3,后端服務(wù)器1有2個請求在處理,而后端服務(wù)器2只有一個請求在處理則新請求交給后端服務(wù)器2。
upstream? ?lhj{? ? least_conn;
? ? ? ? ? ? ? ? ? ? ? ? ? server ????????http://192.168.30.11;
? ? ? ? ? ? ? ? ? ? ? ? ? server? ? ? ? http://192.168.30.12;
}
④ip、url? 哈希算法
每個請求按訪問ip或者url的hash結(jié)果分配,這樣每個訪客固定訪問一個后端服務(wù)器,不需要知道是如何計(jì)算的,只要了解會固定訪問一個后端服務(wù)器即可。
⑤響應(yīng)時間fair算法
需要解讀nginx第三方模塊ngx_http_upstream_fair_module實(shí)現(xiàn),配置時max_fails=number為后端服務(wù)器配置,默認(rèn)單位為秒,按照響應(yīng)時間來處理請求,響應(yīng)時間越短越優(yōu)先分配
2、實(shí)現(xiàn)反向代理負(fù)載均衡實(shí)驗(yàn)
使用變量:$remote_root
①實(shí)驗(yàn)拓?fù)?/h3>
②實(shí)驗(yàn)?zāi)康?/h3>
用戶pc1訪問代理服務(wù)的www.lhj.com虛擬主機(jī)域名時,若由服務(wù)端pc3服務(wù)器處理則返回this is pc3若由服務(wù)端pc4服務(wù)器處理則返回this is pc4 用nginx反向代理實(shí)現(xiàn)負(fù)載均衡。
③實(shí)驗(yàn)過程
①首先準(zhǔn)備四臺虛擬機(jī)且關(guān)閉防火墻和selinux,其中pc2、pc3、pc4安裝nginx。
pc2、pc3、pc4執(zhí)行:
yum install epel-release -y
yum install nginx -y
#安裝nginx
②pc2、pc3、pc4上創(chuàng)建子配置文件test.conf
pc2、pc3、pc4執(zhí)行:
cd /etc/nginx/conf.d/
touch test.conf
#進(jìn)入子配置文件目錄創(chuàng)建子配置文件
③服務(wù)端pc3子配置文件內(nèi)容
server {root /etc/nginx/html;
#指定虛擬主機(jī)根目錄
}
④創(chuàng)建服務(wù)端pc3虛擬主機(jī)的根目錄,并寫默認(rèn)內(nèi)容為this is pc3在index.html中
mkdir -p /etc/nginx/html;
echo "this is pc3">/etc/nginx/html/index.html
#遞歸創(chuàng)建文件夾并設(shè)置默認(rèn)主頁內(nèi)容
⑤服務(wù)端pc4子配置文件內(nèi)容
server {root /etc/nginx/html;
#指定虛擬主機(jī)根目錄
}
⑥服務(wù)端pc4子配置文件內(nèi)容
server {root /etc/nginx/html;
#指定虛擬主機(jī)根目錄
}
⑦創(chuàng)建服務(wù)端pc4虛擬主機(jī)的根目錄,并寫默認(rèn)內(nèi)容為this is pc4在index.html中
mkdir -p /etc/nginx/html;
echo "this is pc4">/etc/nginx/html/index.html
⑧反向代理服務(wù)器pc2的主配置文件和子配置文件修改:
主配置文件內(nèi)容修改:
vim /etc/nginx/nginx.conf
#打開主配置文件,在主配置文件的http模塊中添加內(nèi)容如下:
upstream lhj {
#創(chuàng)建名字為lhj的方向代理負(fù)載均衡server 192.168.30.13;
#服務(wù)端pc3地址server 192.168.30.14;
#服務(wù)端pc4地址
}
#子配置文件test.conf內(nèi)容:
server {listen 80;
#監(jiān)聽所有80端口server_name www.lhj.com;
#創(chuàng)建虛擬主機(jī)www.lhj.com
location /{
proxy_pass http://lhj;
#訪問反代的虛擬主機(jī)www.lhj.com則由反向代理負(fù)載均衡lhj來處理請求
}
}
⑨代理服務(wù)和服務(wù)端開啟nginx服務(wù),并在pc1客戶端添加www.lhj.com的對應(yīng)hosts文件進(jìn)行測試
pc2、pc3、pc4執(zhí)行:
systemctl start nginx
pc1執(zhí)行:
sed -i '1a\192.168.30.12 www.lhj.com' /etc/hosts
#在/etc/hosts文件的第一行添加192.168.30.12 www.lhj.com內(nèi)容
curl www.lhj.com
#多次使用訪問反向代理服務(wù)器
得到內(nèi)容
this is pc3
this is pc4的比例大概為1:1