至尊技术网 - Linux教程 2023-04-12T10:44:00+08:00 Typecho https://www.zzwws.cn/feed/atom/tag/Linux%E6%95%99%E7%A8%8B/ <![CDATA[Nginx负载均衡]]> https://www.zzwws.cn/archives/6393/ 2023-04-12T10:44:00+08:00 2023-04-12T10:44:00+08:00 悠悠楠杉 http://www.zzwws.cn 1、轮询
轮询是upstream模块负载均衡默认的策略,每个请求会按时间顺序逐个被分配到不同的后端服务器。轮询不需要额外的配置。

# 代理服务器
# 设置服务器组
upstream backend {
    server 111.173.115.2:80;
    server 111.173.115.3:80;
    server 111.173.115.4:80;
}
server {
    listen 80;
    server_name 111.173.115.1;
    
    location / {
        # backend 就是服务器组的名称
        proxy_pass http://backend/;
    }
}

2、weight加权(加权轮询)
weight=number:用来设置服务器的权重,默认为1,权重数字越大,被分配到请求的几率越大。该权重值主要是针对实际工作环境中不同的后端服务器硬件配置进行调整的,所有此策略比较适合服务器的硬件配置差别比较大的情况。

# 代理服务器
# 设置服务器组
upstream backend {
    server 111.173.115.2:80 weight=10;
    server 111.173.115.3:80 weight=8;
    server 111.173.115.4:80 weight=6;
}
server {
    listen 80;
    server_name 111.173.115.1;
    
    location / {
        # backend 就是服务器组的名称
        proxy_pass http://backend/;
    }
}

3、ip_hash
当对后端的多台动态应用服务器做负载均衡时,ip_hash指令能够将某个客户端IP的请求通过哈希算法定位到同一台后端服务器上。这样,当来自某一个IP的用户在后端Web服务器A上登录后,再访问该站点的其他URL,能保证其访问的还是后端web服务器A。
注意:使用ip_hash指令无法保证后端服务器的负载均衡,可能导致有些后端服务器接收到的请求多,有些后端服务器接受的请求少,而且设置后端服务器权重等方法将不起作用。

# 代理服务器
# 设置服务器组
upstream backend {
    ip_hash;
    server 111.173.115.2:80;
    server 111.173.115.3:80;
    server 111.173.115.4:80;
}
server {
    listen 80;
    server_name 111.173.115.1;
    
    location / {
        # backend 就是服务器组的名称
        proxy_pass http://backend/;
    }
}

4、least_conn
least_conn:最少连接,把请求转发给连接数较少的后端服务器。轮询算法是把请求平均地转发给各个后端,使它们的负载大致相同;但是,有些请求占用的时间很长,会导致其所在的后端负载较高。这种情况下,least_conn这种方式就可以达到更好的负载均衡效果。

# 代理服务器
# 设置服务器组
upstream backend {
    least_conn;
    server 111.173.115.2:80;
    server 111.173.115.3:80;
    server 111.173.115.4:80;
}
server {
    listen 80;
    server_name 111.173.115.1;
    
    location / {
        # backend 就是服务器组的名称
        proxy_pass http://backend/;
    }
}

5、url_hash
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,要配合缓存命中来使用。同一个资源多次请求,可能会到达不同的服务器上,导致不必要的多次下载,缓存命中率不高,以及一些资源时间的浪费。而使用url_hash,可以使得同一个url(也就是同一个资源请求)会到达同一台服务器,一旦缓存住了资源,再次收到请求,就可以从缓存中读取。

# 代理服务器
# 设置服务器组
upstream backend {
    hash $request_uri;
    server 111.173.115.2:80;
    server 111.173.115.3:80;
    server 111.173.115.4:80;
}
server {
    listen 80;
    server_name 111.173.115.1;
    
    location / {
        # backend 就是服务器组的名称
        proxy_pass http://backend/;
    }
}

6、fair
fair采用的不是内建负载均衡使用的均衡算法,而是可以根据页面大小、加载时间长短智能地进行负载均衡。那么如何使用第三方模块的fair负载均衡策略?

# 代理服务器
# 设置服务器组
upstream backend {
    fair;
    server 111.173.115.2:80;
    server 111.173.115.3:80;
    server 111.173.115.4:80;
}
server {
    listen 80;
    server_name 111.173.115.1;
    
    location / {
        # backend 就是服务器组的名称
        proxy_pass http://backend/;
    }
}

但是如果直接使用会报错,因为fair属于第三方模块实现的负载均衡。需要添加nginx-upstream-fair,如何添加对应的模块:

1.下载nginx-upstream-fair模块。

https://github.com/gnosek/nginx-upstream-fair

2.将下载的文件上传到服务器并进行解压缩。

unzip nginx-upstream-fair-master.zip

3.重命名资源。

mv nginx-upstream-fair-master fair

4.使用./configure命令将资源添加到Nginx模块中。

./configure --add-module=/root/fair

5.编译。

make

-编译可能会出现如下错误: nginx_http_upstream_srv_conf_t结构中缺少default_port

-解决方案 在Nginx的源码中src/http/nginx_http_upstream.h,找到ngx_http_upstream_srv_conf_s,在模块中添加default_port属性:
in_port_t default_port 然后再进行make。

6.更新Nginx。

1、将sbin目录下的nginx进行备份
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginxold

2、将安装目录下的objs中的nginx拷贝到sbin目录
cd objs
cp nginx /usr/local/nginx/sbin

3、更新
cd ../
make upgrade

7.编译测试使用Nginx。

]]>
<![CDATA[Linux全栈开发精通视频教程]]> https://www.zzwws.cn/archives/6312/ 2021-12-24T17:56:35+08:00 2021-12-24T17:56:35+08:00 悠悠楠杉 http://www.zzwws.cn

Linux全栈开发精通视频教程,由好几期的课程共同组成。课程内容包括了第一期的Linux零基础入门视频教程,主要包括了Linux基础和Shell脚本编程。第二部分上Linux内核编程全解部分,第三部分上Linux的裸机开发实战课程,以及最终的Linux驱动开发篇教程。这几部部分课程可以让同学们很详细的学习到Linux各种开发技能。

下载地址:https://www.aliyundrive.com/s/mRpdK3WhFj9

]]>
<![CDATA[鸟哥Linux私房菜基础学习]]> https://www.zzwws.cn/archives/4172/ 2020-07-04T18:26:27+08:00 2020-07-04T18:26:27+08:00 悠悠楠杉 http://www.zzwws.cn

书籍介绍:

这本书非常经典,至今仍然蝉联最受欢迎华语Linux书籍第一的位置,无人能撼动,非常基础,

因为他本身也是从0基础开始自学摸索,所以这本书也是一个循序渐进的过程,带领大家一步步

进入Linux世界,非常口语化,相较于那些用了大量专业词汇的技术书籍,鸟哥的书真的是更容易为人所接受。

下载地址:https://zhizun.lanzouy.com/ipuvMeaz32j

]]>
<![CDATA[服务器Linux宝塔安装视频教程免费分享]]> https://www.zzwws.cn/archives/3282/ 2020-04-05T18:25:00+08:00 2020-04-05T18:25:00+08:00 悠悠楠杉 http://www.zzwws.cn

Linux宝塔安装简单的服务器Linux操作系统宝塔控制面板安装视频教程,教程里面详细的讲解了宝塔的安装和使用!非常适合才建站的新手看,Windows和linux操作系统都有各的好处!自我觉得linux安装了宝塔还是很好用的!

链接: https://pan.baidu.com/s/1CzvByf6xUs0FpNF2AqK8Mw 提取码: een7

]]>
<![CDATA[Linux测试网速、性能]]> https://www.zzwws.cn/archives/2787/ 2020-02-13T21:43:00+08:00 2020-02-13T21:43:00+08:00 悠悠楠杉 http://www.zzwws.cn 测试网速

wget https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py
chmod a+rx speedtest.py
sudo mv speedtest.py /usr/local/bin/speedtest
sudo chown root:root /usr/local/bin/speedtest
speedtest //以上执行过,可以直接执行这段

结果如下:

从图中可以看到详细的下载速度为多少,上传速度为多少。很方便。

linux测速脚本:https://zhizun.lanzoui.com/ijWoxrpjsze

测试性能

wget https://raw.githubusercontent.com/oooldking/script/master/superbench.sh
chmod +x superbench.sh
./superbench.sh

linux测性能脚本:https://zhizun.lanzouy.com/i0lSjza061c

]]>
<![CDATA[2018最新Linux自动化运维系列④Shell高级脚本自动化编程实战]]> https://www.zzwws.cn/archives/1321/ 2019-10-07T21:27:00+08:00 2019-10-07T21:27:00+08:00 悠悠楠杉 http://www.zzwws.cn

标杆徐2018最新Linux自动化运维系列:④Shell高级脚本自动化编程实战
下载地址:https://pan.baidu.com/s/1sYqZlhSVV4-ZHYKv9UGKgg 提取码: 3g5g 复制这段内容后打开百度网盘手机App,操作更方便哦

]]>