第十四周作業

LVS:調度方法 ipvs scheduler 

根據其調度時是否考慮各RS當前的負載狀態,可分為靜態方法和動態方法。

LVS:術語:

  1. CIP:Client IP;客戶端IP;
  2. VIP:Virtual Server IP;虛擬主機對外IP;
  3. RIP:Real Server IP;真實主機IP;
  4. DIP:Director IP;虛擬主機內網段主機IP;
靜態方法:僅根據算法本身進行調度。
  1. RR:RoundRobin,輪巡;
  2. WRR:Weighted RR,加權輪巡;
  3. SH:Source Hashing,實現session sticky,源IP地址hash,將來自于同一個IP地址的請求始終發往第一次選中的RS主機,從而實現會話綁定。
  4. DH:Destination Hashing:目標地址哈希相同,將發往同一個目標地址的請求始終發往選中的RS主機,典型使用正向代理緩存場景中的負載均衡。
動態方法:根據RS主機負載均衡狀態即使調整算法進行調度。
  1. LC:Least Connections:RS進行比較最少連接的。
  2. WLC:Weighted LC 加權最少連接,最優算法;
  3. SED:Shortest Expection Delay 最短期望延遲
  4. NQ:Never Queue
  5. LBLC:Locality-based LC:動態的DH算法
  6. LBLCR:LBLC with Replocation,帶復制功能的LBLC;

集群管理工具:ipvsadm/ipvs

程序集合及配置文件:

Unit File:ipvsadm.service

主程序:/usr/sbin/ipvsadm

規則保持工具:/usr/sbin/ipvsadm-save

規則重載工具:/usr/sbin/ipvsadm-restore

規則配置文件:/etc/sysconfig/ipvsadm-config

ipvsadm 命令:

集群服務管理命令:

ipvsadm -A | E -t|u|f service-address [-s scheduler] [-p [timeout]] [-M netmask] [–pe persistence_engine] [-b sched-flags]

-A 增加 | -E 修改  -t|u|f

-t:TCP協議端口,VIP:TCP_PORT

-u:UDP協議端口,VIP:UDP_PORT

-f:firewall MARK,數字(特指iptables 做的標記符)

[-s scheduler]:指定集群的調度算法,默認唯wlc;可省

ipvsadm -D 刪除 -t |u|f service-address

ipvsadm -C:清空定義內容

ipvsadm -R:-R:重載配置;ipvsadm -S -n > /etc/sysconfig/ipvsadm

ipvsadm -S [-n]:-S:保存配置;ipvsadm -R < /etc/ssyconfig/ipvsadm 

集群服務RS管理:

 ipvsadm -a|e -t|u|f service-address -r server-address [options]

 -a 增加 | -e 修改 -t|u|f

-t:TCP協議端口

-u:UDP協議端口

-f:firewall MARK,數字

ipvsadm -d 刪除 -t|u|f service-address -r server-address

ipvsadm -L 查看|l [options]

–numeric,-n:顯示地址和端口

 –exact:顯示精確值

 –connection,-c:顯示LVS連接信息

–stats:統計數據

–rate:統計速率

ipvsadm -Z 計數器歸零 [-t|u|f server-address]

server—address:rip[:port] 不做地址映射

選項:

-g:gateway,dr類型

-i:ipip,tun類型

-m:masquerade,nat類型

-w wgight:權重;

負載均衡集群設計時要注意的問題:

是否需要會話保持;

是否需要共享存儲;

共享存儲:NAS,SAN,DS(分布式存儲)

數據同步;

 

 

nginx 安裝及常用的模塊的使用示例 

nginx官方提供yum倉庫

創建nginx倉庫在/etc/yum.repos.d/nginx.repo,將OS替換唯 rhel 或 centos ,根據系統將 OSRELEASE 替換為 6 或 7.

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/OS/OSRELEASE/$basearch/
gpgcheck=0
enabled=1

安裝時直接使用yum 命令安裝:

yum -y install nginx

卸載

yum -y remove nginx

 

編譯安裝nginx

編譯安裝前需要先配置環境
[[email protected] source]# yum -y groupinstall Development Tools
[[email protected] source]# yum install gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel openssl openssl-devel 
下載新的編譯安裝包
[[email protected] ~]# wget http://nginx.org/download/nginx-1.15.7.tar.gz
解壓編譯安裝包
[[email protected] ~]# tar -zxvf nginx-1.15.7.tar.gz
打開目錄
[[email protected] ~]# cd nginx-1.15.7
查詢需要編譯的module是否支持
[[email protected] nginx-1.15.7]# ./configure --help | grep upstream
添加需要編譯的module
[[email protected] nginx-1.15.7]# ./configure --prefix=/usr/local/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --user=nginx --group=nginx --with-http_ssl_module  --with-http_stub_status_module --with-http_flv_module --with-http_mp4_module --with-threads --with-file-aio --without-http_upstream_hash_module --without-http_upstream_ip_hash_module --without-http_upstream_least_conn_module --without-http_upstream_random_module --without-http_upstream_keepalive_module --without-http_upstream_zone_module --without-http_upstream_zone_module --without-stream_upstream_hash_module --without-stream_upstream_least_conn_module --without-stream_upstream_random_module --without-stream_upstream_zone_module

安裝
[[email protected] nginx-1.15.7]# make && make install

創建:systemd管理服務
[[email protected] system]# vim nginx.service 

[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target

[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID

[Install]
WantedBy=multi-user.target

查看編譯帶有的模塊
[[email protected] sbin]# nginx -V
nginx version: nginx/1.15.7
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-http_flv_module --with-http_mp4_module --with-threads --with-file-aio --without-http_upstream_hash_module --without-http_upstream_ip_hash_module --without-http_upstream_least_conn_module --without-http_upstream_random_module --without-http_upstream_keepalive_module --without-http_upstream_zone_module --without-http_upstream_zone_module --without-stream_upstream_hash_module --without-stream_upstream_least_conn_module --without-stream_upstream_random_module --without-stream_upstream_zone_module


#### 添加模塊
1、使用nginx -V 查看編譯中使用的 module 復制一份不然過會沒辦法打開了。
2、首先備份現有的文件
3、備份現有的程序
4、查看要編譯的 module 
5、輸入之前的編譯的命令,后邊添加新要增加的module
6、編譯過程中使用make 切記千萬不要使用make install
7、使用 nginx -V 查看

[[email protected] nginx-1.15.7]#  nginx -V
--prefix=/usr/local/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-http_flv_module --with-http_mp4_module --with-threads --with-file-aio --without-http_upstream_hash_module --without-http_upstream_ip_hash_module --without-http_upstream_least_conn_module --without-http_upstream_random_module --without-http_upstream_keepalive_module --without-http_upstream_zone_module --without-http_upstream_zone_module --without-stream_upstream_hash_module --without-stream_upstream_least_conn_module --without-stream_upstream_random_module --without-stream_upstream_zone_module

備份配置文件,備份主程序文件
[[email protected] sbin]# cp /etc/nginx/ /etc/nginxbak   配置文件根據需要是否拷貝。
[[email protected] sbin]# cp -r /usr/sbin/nginx /usr/sbin/nginxbak   # 必須備份,防止出出現故障未備份導致無法恢復的錯誤。
查看要編譯安裝的module 
[[email protected] nginx-1.15.7]# ./configure --help | grep limit

將要條件編譯的文件附加在之前的配置信息后邊
[[email protected] nginx-1.15.7]# ./configure --prefix=/usr/local/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-http_flv_module --with-http_mp4_module --with-threads --with-file-aio --without-http_upstream_hash_module --without-http_upstream_ip_hash_module --without-http_upstream_least_conn_module --without-http_upstream_random_module --without-http_upstream_keepalive_module --without-http_upstream_zone_module --without-http_upstream_zone_module --without-stream_upstream_hash_module --without-stream_upstream_least_conn_module --without-stream_upstream_random_module --without-stream_upstream_zone_module --without-http_limit_conn_module --without-http_limit_req_module --without-stream_limit_conn_module

然后進行編譯 make  
切記這里沒有make install,會覆蓋之前的文件。

拷貝編輯目錄下的nginx 主程序到指定安裝的程序目錄;這里的是/etc/sbin/
[[email protected] nginx-1.15.7]# ls
auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  Makefile  man  objs  README  src
[[email protected] nginx-1.15.7]# cp objs/nginx /usr/sbin/


原創文章,作者:N28_剛好遇到小熊貓,如若轉載,請注明出處:http://www.npownk.tw/124758

聯系我們

400-080-6560

在線咨詢

工作時間:周一至周五,9:30-18:30,節假日同時也值班

QR code
安徽十一选五分布走势