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