月光大保健

导航

企業工具(其二)

集群:

将多个物理机器组成⼀个逻辑计算机, 实现负载均衡和容错

组成要素
1VIP: ⼀个IP地址
2) 分发器: nginx
3) 数据服务器: Web
服务器


集群原理:虚拟主机+反向代理+upstream分发模块组成的

虚拟主机: 接受和响应请求
反向代理: 带⽤户去数据服务器拿数据
upstream: 告诉Nginx去哪个数据服务器拿数据
数据⾛向
1) 虚拟主机接受⽤户请求
2) 虚拟主机去找反向代理
3) 反向代理让去找upstream
4upstream 告诉 ⼀个数据服务器IP
5Nginx去找数据服务器 并发起⽤户的请求
6) 数据服务器接受请求并处理请求
7) 数据服务器响应请求给Nginx
8Nginx响应请求给⽤户


 

#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

  

posted on 2019-06-21 17:28  月光大保健  阅读(100)  评论(0编辑  收藏  举报