keepalived服務器可以做多個代理服務器噢 ( 只有web走http協議,nginx代理相當於代理web)
目前階段主要學習內容是建立多個服務器然後客戶端通過代理服務器(調度器)訪問到服務器(web1,web2.。。。)
代理服務器也可以稱爲調度器,可以指定服務器實現執行那些命令,達到負載均衡。服務器還可以隨後期慢慢增加
1,滿足這項拓撲結構圖的要求是服務器需要關閉防火牆,selinux,以及安裝協議httpd網絡協議,這些都是必須要有的。 yum -y install httpd
服務器的./var/www/html/index.html 可以寫入信息進行一個辨別區別
systemctl restart httpd 重啓
2,在代理服務器上定義所需要代理的服務器 ,想加多少都在代理服務器配置文件裏添加即可!
[ proxy] vim /usr/local/nginx/conf/nginx.conf
在http下面,server上一行加一個定義 大概在35行樣子
upstream webserver { upstream爲定義的意思,後面跟名字,解釋爲我要定義一個集羣叫webserver 然後花括號 server 192.168.2.100:80; 定義具體的服務器是誰(一個2.100和一個2.200)
server 192.168.2.200:80;
} 格式。沒句話後要有冒號結尾,最後面要有花括號結尾,花括號爲偶數!!!
3,(以上只是定義好了集羣,如果不調用那就不能實現反向代理效果,進入nginx配置文件修改 proxy_pass,在第46行的location修改,servre監聽的下面)
server {
listen 80;
server_name www.tarena.com;
charset utf-8;
#access_log logs/host.access.log main;
location / {
proxy_pass http://webserver; (把客戶端的所有請求轉給定義集羣的服務器,前面已經定義過了)
root html;
index index.html index.htm;
}
4,修改萬配置文件後都要重新加載nginx服務器
/usr/local/nginx/sbin/nginx -s reload (如果沒有啓動將會報錯)
測試,客戶端訪問服務端看能否跳轉到定義的服務器上!
[client] curl http://192.168.4.5 //多次輸入查看效果!(當一臺服務器停止服務後,另外一臺會啓動呢)
ngixn【調度器】輪詢算法
同客戶端訪問相同Web服務器 ip_hash算法(加在客戶端要固定訪問的服務器前面,達到客戶端一直訪問這個服務器的效果。加個ip_hash就能實現)
4.1,配置upstream服務器集羣池屬性(代理服務器,服務器都要有nginx的./configure)
一般服務器模塊填寫 ./configure --with-http_ssl_module --with-http_stub_status_module --with-stream
在nginx的配置文件的upstream裏的服務器後面配置 權重,超時時間,失敗次數。
vim /usr/local/nginx/conf/nginx.conf
upstream webserver {
server 192.168.2.100 weight=1 max_fails=1 fail_timeout=30;
server 192.168.2.101 down;
#weight設置服務器權重值,默認值爲1
#max_fails設置最大失敗次數
#fail_timeout設置失敗超時時間,單位爲秒
#down標記服務器已關機,不參與集羣調度
4.2重啓nginx服務
[root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload
5,同客戶端訪問相同Web服務器 ip_hash算法(加在客戶端要固定訪問的服務器前面,達到客戶端一直訪問這個服務器的效果。加個ip_hash就能實現) ip_hash需要加裝 --with-stream 打開後能支持4層代理!可以代理任何服務器
upstream webserver {
server 192.168.2.100 max_fails=3;
ip_hash; (客戶端一直訪問2.200服務端)
server 192.168.2.200:80;
【proxy】/usr/local/nginx/sbin/nginx -s reload
[root@client ~]# curl http://192.168.4.5 //使用該命令多次訪問查看效果
6,Nginx的TCP/UDP調度器
想要調度 ftp,qq, mysql,samb 要在nginx 的配置文件的stream下執行!
想要調度網頁,web要在nginx的配置文件的http下執行!
服務器要加模塊 --with-stream
已經安裝後需要nginx重裝然後,rm -rf /usr/local/nginx 再給腳本./configure 後加入 --with-stream模塊!
兩種調度裏寫的內容一樣!如下
stream{
upstream mysqls或ssh {
server 192.168....:22或:3306;這是後端服務器,SSH端口和ip,後端
server 192.168....:22或:3306; 服務器是什麼端口就是什麼!
}
}
客戶不會直接訪問端口訪問後端服務器,要訪問的是代理(好比找房的中介所!)所以我們還需要以下!
server {
listen 3306;
proxy_pass mysqls或ssh; 調用上面的服務組!
}
}
http的後端格式與stream一樣,但調用格式不同,有點區別!
htpp{
upstream webs{
server 10.....:80;
server .............} }
server {
listen 80;
server_name localhost(這裏寫的是本地,可以寫其他ip地址)
proxy_pass http://webs; 調用http服務的webs
}
}
網頁的F12能看出網頁加載的快不快(後面有毫秒單位的記時)
壓縮比率,當併發量過億後,併發量處理尤爲重要!!!
nginx服務器web網頁存在 /usr/local/nginx/html 下面!這個目錄屬於硬盤,硬盤的讀取速度是電腦裏最慢的(相對於cpu,內存),如果web每執行一次操作就來讀取硬盤那是非常慢的! 所以網也會把熱點內容緩存在網頁的緩存裏(爲熱點次數可以設置 )(可以設置緩存最大多少 ,最大緩存60s,無人訪問,存在時間爲20s)