企業工具(其二)
集群:
将多个物理机器组成⼀个逻辑计算机, 实现负载均衡和容错
组成要素
1) VIP: ⼀个IP地址
2) 分发器: nginx
3) 数据服务器: Web服务器
集群原理:虚拟主机+反向代理+upstream分发模块组成的
虚拟主机: 接受和响应请求
反向代理: 带⽤户去数据服务器拿数据
upstream: 告诉Nginx去哪个数据服务器拿数据
• 数据⾛向
1) 虚拟主机接受⽤户请求
2) 虚拟主机去找反向代理
3) 反向代理让去找upstream
4) upstream 告诉 ⼀个数据服务器IP
5) Nginx去找数据服务器 并发起⽤户的请求
6) 数据服务器接受请求并处理请求
7) 数据服务器响应请求给Nginx
8) Nginx响应请求给⽤户
#upstream 模块
upstream web {
server 192.168.10.42;
server 192.168.10.43;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://web;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
解析: 當用戶訪問該服務器時,nginx會作用分發至192.168.10.42/43 這個選擇由upstream去完成
基於host分發:
http {
upstream web1 {
server 192.168.10.42;
}
upstream web2 {
server 192.168.10.43;
}
server {
listen 80;
server_name www.web1.com;
location / {
proxy_pass http://web1;
}
}
server {
listen 80;
server_name www.web2.com;
location / {
proxy_pass http://web2;
}
}
}
基于开发语⾔分发
yum -y install httpd php #安裝phph語言
systemctl start httpd #開啟httpd
echo "<?php phpinfo(); ?>" > /var/www/html/index.php #寫一個php文件
http {
upstream php {
server 192.168.10.42;
}
upstream html {
server 192.168.10.43;
}
server {
location ~* \.php$ {
proxy_pass http://php;
}
}
location ~* \.html$ {
proxy_pass http://html;
}
}
基於瀏覽器的
upstream elinks { server 192.168.10.42; }
upstream chrome { server 192.168.10.43; }
upstream any { server 192.168.10.42:81; }
server {
listen 80;
server_name www.web1.com;
location / {
proxy_pass http://any;
if ( $http_user_agent ~* Elinks ) {
proxy_pass http://elinks;
}
if ( $http_user_agent ~* chrome ) {
proxy_pass http://chrome;
}
}
}
高可用性:
簡單說就是提高服務器的可用性,預防各種宕機後可以重啟
使用Keepalived 軟件,通過寫腳本,來監控nginx
slat
slat-master 安裝
yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm yum install salt-master
浙公网安备 33010602011771号