当前位置: 首页 > news >正文

wordpress标签分类外包优化网站

wordpress标签分类,外包优化网站,公众平台安全助手,洛阳专业做网站多少钱一.负载均衡 1.1负载均衡时什么 负载均衡:Load Balance,简称LB,是一种服务或基于硬件设备等实现的高可用反向代理技术,负载均网络流量等)分担给指定的一个或多个后端特定的服务器或设备,从而提高了衡将特定的业务(web服务、公司…

一.负载均衡

1.1负载均衡时什么

  • 负载均衡:Load Balance,简称LB,是一种服务或基于硬件设备等实现的高可用反向代理技术,负载均网络流量等)分担给指定的一个或多个后端特定的服务器或设备,从而提高了衡将特定的业务(web服务、公司业务的并发处理能力、保证了业务的高可用性、方便了业务后期的水平动态扩展

1.1.1四层负载均衡

1.1.1.1介绍

1.四层负载均衡是基于ip+port的负载均衡。

2.四层是基于三层负载均衡,发布三层的ip地址(虚拟ip),再加上四层的端口号,从而决定哪些流量需要做负载均衡。

3.四层负载均衡器也称为四层交换机,分析IP层及TCP/UDP层,但是无法解析应用层协议。

1.1.1.2原理

1.通过ip+port决定负载均衡的去向。

2.对流量请求进行NAT处理,转发至后台服务器

3.记录tcp、udp流量分别是由哪台服务器处理,后续该请求连接的流量都通过该服务器处理。

1.1.1.3支持4层代理的软件

1.F5:硬件负载均衡器,成本较高。

2.Nginx:轻量级四层负载均衡器,可缓存。(nginx四层是通过upstream模块)

3.Haproxy:模拟四层转发。

4.lvs:重量级四层负载均衡器。

1.1.2七层负载均衡

1.1.2.1介绍

1.七层负载均衡器是基于虚拟的url或主机ip的负载均衡。

2.七层负载均衡在于内容的交换,即应用层报文内容的交换解析。

3.七层负载均衡器也称为七层交换机,支持四层负载均衡器的功能,且可分析应用层信息,如HTTP协议、URI、Cookie等信息

1.1.2.2原理

1.通过虚拟url或主机ip进行流量识别,根据应用层信息进行解析,决定是否需要进行负载均衡。

2.代理后台服务器与客户端建立连接,如nginx可代理前后端,与前端客户端tcp连接,与后端服务器建立tcp连接,

1.1.2.3支持7层代理的软件
  • Nginx:基于http协议(nginx七层是通过proxy_pass)

  • Haproxy:七层代理,会话保持、标记、路径转移等

 1.2.3四层和七层的区别

1.分层位置:四层负载均衡在传输层及以下,七层负载均衡在应用层及以下

2.性能:四层负载均衡架构无需解析报文消息内容,在网络吞吐量与处理能力上较高:七层可支持解析应用层报文消息内容,识别URL、Cookie、HTTP header等信息。

3.原理 :四层负载均衡是基于ip+port;七层是基于虚拟的URL或主机IP等。

4.功能类比:四层负载均衡类似于路由器;七层类似于代理服务器。

5.安全性:四层负载均衡无法识别DDoS攻击;七层可防御SYN Cookie/Flood攻击

三.haproxy简介

  • HAProxy是法国开发者 威利塔罗(Willy Tarreau)在2000年使用C语言开发的一个开源软件是一款具备高并发(万级以上)、高性能的TCP和HTTP负载均衡器支持基于cookie的持久性,自动故障切换,支持正则表达式及web状态统计

haproxy安装(负载均衡软件)

实验环境

功能ip
haproxyeth0:172.25.254.100
RSeth0:172.25.254.10
RSeth0:172.25.254.20

3.1三台主机部署

webserver1

[root@webserver1 ~]# dnf install nginx -y[root@webserver1 ~]# echo webserver1 - 172.25.254.10 > /usr/share/nginx/html/index.html[root@webserver1 ~]# systemctl enable --now nginx.service 
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.

webserver2

[root@webserver22 ~]# dnf install nginx -y[root@webserver2 ~]# echo webserver2 - 172.25.254.20 > /usr/share/nginx/html/index.html[root@webserver2 ~]# systemctl enable --now nginx.service 
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.

安装haproxy并编辑配置文件

# 安装
[root@haproxy ~]# dnf install haproxy -y[root@haproxy ~]# vim /etc/haproxy/haproxy.cfg 
frontend webcluster                # 设置前端bind *:80                      # 监听端口mode http                      # 七层use_backend webcluster-host    # 使用的后端backend webcluster-host            # 定义后端名称balance roundrobin             # 调度规则(使用的算法)server web1 172.25.254.10:80   # 后端server的ipserver web2 172.25.254.20:80#    第二种写法
#    listen webcluster
#        bind *:80
#        mode http
#        balance roundrobin
#        server web1 172.25.254.10:80
#        server web2 172.25.254.20:80[root@haproxy ~]# systemctl enable haproxy.service 
[root@haproxy ~]# systemctl restart haproxy.service

测试

后端检测

[root@webserver1 ~]# systemctl stop nginx.service 

 

 四.haproxy的基本配置信息

4.1global配置

globallog         127.0.0.1 local2        # 日志级别为2 记录在本机chroot      /var/lib/haproxy        # 设定haproxy运行目录pidfile     /var/run/haproxy.pid    # PID文件maxconn     100000                  # 最大链接数user        haproxy                 # 运行的用户group       haproxy                 # 运行的组daemon                              # 运行在后台# turn on stats unix socketstats socket /var/lib/haproxy/stats    # 状态接口# utilize system-wide crypto-policiesssl-default-bind-ciphers PROFILE=SYSTEM # 支持ssl的加密认证ssl-default-server-ciphers PROFILE=SYSTEM

4.1.1多进程和线程

启用查询多进程
# 默认为单进程
[root@haproxy ~]# pstree -p | grep haproxy|-haproxy(1925)---haproxy(1927)---{haproxy}(1928)[root@haproxy ~]# vim /etc/haproxy/haproxy.cfg global
###省略### nbproc 2    # 启用多线程 cpu-map 1 0 # 进程和cpu核心绑定防止cpu抖动从而减少系统资源消耗cpu-map 2 1 # 2 表示第二个进程,1表示第二个cpu核心[root@haproxy ~]# systemctl restart haproxy.service [root@haproxy ~]# pstree -p | grep haproxy|-haproxy(2042)-+-haproxy(2045)|               `-haproxy(2046)# 查看多进程
[root@haproxy ~]# pstree -p | grep haproxy|-haproxy(2030)-+-haproxy(2032)|               `-haproxy(2033)
多线程对比
[root@haproxy ~]# cat /proc/2045/status | grep -i thread
Threads:	1  # 未开启多线程
Speculation_Store_Bypass:	thread vulnerable[root@haproxy ~]# vim /etc/haproxy/haproxy.cfg global
###省略###nbthread 2 # 开启多线程[root@haproxy ~]# systemctl restart haproxy.service [root@haproxy ~]# pstree -p | grep haproxy|-haproxy(2066)---haproxy(2068)---{haproxy}(2069)[root@haproxy ~]# cat /proc/2068/status | grep -i thread
Threads:	2
Speculation_Store_Bypass:	thread vulnerable

4.2proxies配置

4.2.1proxies参数说明

参数类型作用
defaults[]proxies默认配置项,针对以下的frontend、backend和listen生效,可以多个name也可以没有name
frontendproxies前端servername,类似于Nginx的一个虚拟主机 server和LVS服务集群。
backendproxies后端服务器组,等于nginx的upstream和LVS中的RS服务器
listenproxies将frontend和backend合并在一起配置,相对于frontend和backend配置更简洁,生产常用
 4.2.1.1defaults
[root@haproxy ~]# vim /etc/haproxy/haproxy.cfg defaultsmode                    http                # 使用七层log                     global              # 日志 根据global的设定option                  httplog             # 记录http的日志option                  dontlognull         # 空链接的日志不记录option http-server-close                    # 等待客户端完整HTTP请求的时间,此处为等待10soption forwardfor       except 127.0.0.0/8  # 透传客户端真实IP至后端web服务器# 在apache配置文件中加入:<br>%{x-Forwarded-For}i# 后在webserer中看日志即可看到地址透传信息option                  redispatch          # #当server ID对应的服务器挂掉后,强制定向到其他健康的服务器,重新派发retries                 3                   # 连接后端服务器失败次数timeout http-request    10s                 # 等待客户端请求完全被接收和处理的最长时问timeout queue           1m                  # 设置删除连接和客户端收到503或服务不可用等提示信息前的等待时问timeout connect         10s                 # 设置等待服务器连接成功的时间timeout client          1m                  # 设置允许客户端处于非活动状态,即既不发送数据也不接收数据的时间timeout server          1m                  # 设置服务器超时时间,即允许服务器处于既不接收也不发送数据的非活动时间timeout http-keep-alive 10s                 # session会话保持超时时间,此时问段内会转发到相同的后服务器timeout check           10s                 # 对后端服务器的默认检测超时时间maxconn                 3000                # 最大能够承受的并发链接
backup使用案例 
web1
[root@webserver1 ~]# systemctl stop nginx.service web2
[root@webserver2 ~]# systemctl stop nginx.service 
###  backup 示例
[root@haproxy ~]# dnf install httpd -y[root@haproxy ~]# vim /etc/httpd/conf/httpd.conf 
# 定位47行,修改端口号46 #Listen 12.34.56.78:8047 Listen 8080[root@haproxy ~]# systemctl enable --now  httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.[root@haproxy ~]# echo sorry 下班了 > /var/www/html/index.html[root@haproxy ~]# vim /etc/haproxy/haproxy.cfglisten webclusterbind *:80mode httpbalance roundrobinserver web1 172.25.254.10:80 check inter 2 fall 3 rise 5 weight 2server web2 172.25.254.20:80 check inter 2 fall 3 rise 5 weight 1server web_s 172.25.254.100:8080 backup
# web1和web2没有被调用的时候,调用web_s[root@haproxy ~]# systemctl restart haproxy.service 
[root@haproxy ~]# curl 172.25.254.100
sorry 下班了
[root@haproxy ~]# curl 172.25.254.100
sorry 下班了
# 开启其中一台
[root@webserver2 ~]# systemctl start nginx.service # 检测
[root@haproxy ~]# curl 172.25.254.100
webserver2 - 172.25.254.20
[root@haproxy ~]# curl 172.25.254.100
webserver2 - 172.25.254.20
[root@haproxy ~]# curl 172.25.254.100
webserver2 - 172.25.254.20
 server配置
# 针对一个server配置
check #对指定rea1进行健康状态检査,如果不加此设置,默认不开启检査,只有check后面没有其它配置也可以启用检查功能# 默认对相应的后端服务器IP和端口,利用TCP连接进行周期性健康性检查,注意必须指定端口才能实现健康性检查
addr <IP>             # 可指定的健康状态监测IP,可以是专门的数据网段,减少业务网络的流量
port <num>            # 指定的健康状态监测端口
inter <num>           # 健康状态检查间隔时间,默认2000ms
fa11 <num>            # 后端服务器从线上转为线下的检查的连续失效次数,默认为3
rise <num>            # 后端服务器从下线恢复上线的检查的连续有效次数,默认为2
weight <weight>       # 默认为1,最大值为256,0(状态为蓝色)表示不参与负载均衡,但仍接受持久连
接
backup                # 将后端服务器标记为备份状态,只在所有非备份主机down机时提供服务,类似Sorry
Server
disabled              # 将后端服务器标记为不可用状态,即维护状态,除了持久模式,将不再接受连接,状态为深黄色,优雅下线,不再接受新用户的请求redirect prefix http://www.baidu.com/ # 将请求临时(302)重定向至其它URL,只适用于http模式
redir http://www.baidu.com # 将请求临时(302)重定向至其它URL,只适用于http模式maxconn <maxconn>     # 当前后端server的最大并发连接数

4.3socat工具

  • 对服务器动态权重和其它状态可以利用 socat工具进行调整,Socat 是 Linux 下的一个多功能的网络工具,名字来由是Socket CAT,相当于netCAT的增强版.Socat 的主要特点就是在两个数据流之间建立双向通道,且支持众多协议和链接方式。如IP、TCP、UDP、IPv6、Socket文件等
利用工具socat 对服务器动态权重调整
# 动态调整haproxy里面的参数
[root@haproxy ~]# vim /etc/haproxy/haproxy.cfg # turn on stats unix socketstats socket /var/lib/haproxy/stats mode 600 level admin
# mode 600:stats文件权限是600
# level admin 表示管理员权限,通过stats文件来控制haproxy文件的配置,不加admin只能看不能写[root@haproxy ~]# systemctl restart haproxy.service [root@haproxy ~]# ll /var/lib/haproxy/stats 
srw------- 1 root root 0  8月  9 11:55 /var/lib/haproxy/stats# 安装socat动态调整haproxy的参数
[root@haproxy ~]# dnf install socat -y# 查看当前集群的权重
[root@haproxy ~]# echo get weight webcluster/web1 | socat stdio /var/lib/haproxy/stats 
2 (initial 2)# 设置权重
[root@haproxy ~]# echo "set weight webcluster/web1 1 "| socat stdio /var/lib/haproxy/stats # 查看修改成功
[root@haproxy ~]# echo get weight webcluster/web1 | socat stdio /var/lib/haproxy/stats 
1 (initial 2)
[root@haproxy ~]# for i in {1..10}
> do 
> curl 172.25.254.100
> done
webserver2 - 172.25.254.20
webserver1 - 172.25.254.10
webserver2 - 172.25.254.20
webserver1 - 172.25.254.10
webserver2 - 172.25.254.20
webserver1 - 172.25.254.10
webserver2 - 172.25.254.20
webserver1 - 172.25.254.10
webserver2 - 172.25.254.20
webserver1 - 172.25.254.10# 设置一台主机下线
[root@haproxy ~]# echo "disable server webcluster/web1" | socat stdio /var/lib/haproxy/stats [root@haproxy ~]# for i in {1..10}; do  curl 172.25.254.100; done
webserver2 - 172.25.254.20
webserver2 - 172.25.254.20
webserver2 - 172.25.254.20
webserver2 - 172.25.254.20
webserver2 - 172.25.254.20
webserver2 - 172.25.254.20
webserver2 - 172.25.254.20
webserver2 - 172.25.254.20
webserver2 - 172.25.254.20
webserver2 - 172.25.254.20# 重新启用
[root@haproxy ~]# echo "enable server webcluster/web1" | socat stdio /var/lib/haproxy/stats [root@haproxy ~]# for i in {1..10}; do  curl 172.25.254.100; done
webserver2 - 172.25.254.20
webserver1 - 172.25.254.10
webserver2 - 172.25.254.20
webserver1 - 172.25.254.10
webserver2 - 172.25.254.20
webserver1 - 172.25.254.10
webserver2 - 172.25.254.20
webserver1 - 172.25.254.10
webserver2 - 172.25.254.20
webserver1 - 172.25.254.10

针对多进程处理方法

[root@haproxy ~]# vim /etc/haproxy/haproxy.cfg global
###省略#### turn on stats unix socketstats socket /var/lib/haproxy/stats1 mode 600 level admin process 1 # haproxy多进程热处理stats socket /var/lib/haproxy/stats2 mode 600 level admin process 2# utilize system-wide crypto-policiesssl-default-bind-ciphers PROFILE=SYSTEMssl-default-server-ciphers PROFILE=SYSTEMnbproc 2 # 多进程cpu-map 1 0cpu-map 2 1[root@haproxy ~]# systemctl restart haproxy.service [root@haproxy ~]# ll /var/lib/haproxy
总用量 0
srw------- 1 root root 0  8月 11 19:22 stats
srw------- 1 root root 0  8月 11 19:25 stats1
srw------- 1 root root 0  8月 11 19:25 stats2
http://www.ds6.com.cn/news/4870.html

相关文章:

  • 如何进行网站性能优化?苏州百度
  • 怎么查公司网站有没有被收录微信app小程序开发
  • thinkphp做企业网站网站关键词快速排名服务
  • 网站备案能不能出现世界什么叫外链
  • 宁波网站建设-中国互联百度客服中心人工在线咨询
  • angular2是做网站的还是手机的推广资源网
  • 汉中网站建设推广今天特大新闻
  • 企业网站建设三个原则seo整站优化外包
  • 长沙电子商务网站建设网络营销渠道类型有哪些
  • php做外贸网站好吗网页设计模板html代码
  • 建一个做笔记的网站免费的电脑优化软件
  • 网站建设需要申请服务器吗网页优化最为重要的内容是
  • 做网站流程如何写好一篇软文
  • 郑州建网站哪个公司好2024很有可能再次封城吗
  • 外贸网站推广平台排名自己做一个网站需要什么
  • 义乌购网站做代销怎么样近期网络营销的热点事件
  • b2c网上购物平台seosem是什么职位
  • php网站开发和部署广州网站优化推广
  • 做网站的公司是接入商吗百度新闻官网
  • 中山做网站服务好企业网站cms
  • 可以做仿真实验的网站武汉大学人民医院精神卫生中心
  • 宁波专业网站制作设计百度品牌推广
  • 12306网站做的好垃圾广告推广
  • 小程序服务器多少钱宁波seo关键词优化报价
  • 阿里云做网站开发吗app推广公司
  • 网站建设征集通讯员的通知百度搜索智能精选
  • 公众号如何做网站全网
  • 食品贸易网站建设案例建网站赚钱
  • 青岛做网站哪家公司好个人如何推广app
  • 做企业信用贷的网站网络营销策划书