网站空间维护,丽水市莲都区建设局网站,网页背景图片适合网页,编程培训机构推荐君衍. 一、编译安装Nginx二、轮询算法实现负载均衡三、加权轮询算法实现负载均衡四、ip_hash实现负载均衡 一、编译安装Nginx
这里我们先将环境准备好#xff0c;我使用的是Ubuntu22.04操作系统#xff1a; 这个是我刚安装好的#xff0c;所以首先我们进行保存快照防止安装… 君衍. 一、编译安装Nginx二、轮询算法实现负载均衡三、加权轮询算法实现负载均衡四、ip_hash实现负载均衡 一、编译安装Nginx
这里我们先将环境准备好我使用的是Ubuntu22.04操作系统 这个是我刚安装好的所以首先我们进行保存快照防止安装过程出错同时我已经讲镜像源进行了更新。 好的下面我们首先开始安装Nginx 1、安装依赖 sudo apt install libgd-dev2、下载nginx wget http://nginx.org/download/nginx-1.22.1.tar.gz3、解压nginx tar -zvxf nginx-1.22.1.tar.gz4、安装GCC sudo apt install gcc5、安装pcre库 PCRE库支持正则表达式。如果我们在配置文件nginx.conf中使用了正则表达式那么在编译Nginx时就必须把PCRE库编译进Nginx因为Nginx的HTTP模块需要靠它来解析正则表达式。另外pcre-devel是使用PCRE做二次开发时所需要的开发库包括头文件等这也是编译Nginx所必须使用的。
sudo apt install libpcre3 libpcre3-dev6、安装SSL库 如果服务器不只是要支持HTTP还需要在更安全的SSL协议上传输HTTP那么需要拥有OpenSSL。另外如果我们想使用MD5、SHA1等散列函数那么也需要安装它。
sudo apt-get install openssl libssl-dev7、编译安装 编译
cd nginx-1.22.1编译并指定安装位置执行安装之后会创建指定文件夹/www/env/nginx
./configure --prefix/www/env/nginx \
--with-pcre \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_stub_status_module \
--with-http_auth_request_module \
--with-http_image_filter_module \
--with-http_slice_module \
--with-mail \
--with-threads \
--with-file-aio \
--with-stream \
--with-mail_ssl_module \
--with-stream_ssl_module 安装
make make install至此等待半分钟安装成功。 到这里我们在Ubuntu22.04下安装Nginx已经安装成功这里我补充下由于使用用户安装时出现了权限不够的错误所以我后面使用root登录重新进行安装了其实只要在前面sudo加上就行。 我们打开nginx并检验nginx状态查看防火墙并将其关闭。
systemctl status nginx
systemctl status ufw
systemctl stop ufw
systemctl status ufw然后查看自身IP地址并进行访问 这里使用浏览器访问查看nginx是否成功开启 这里我们模拟Nginx的负载均衡效果我这里又克隆了两台Ubuntu来方便查看。
二、轮询算法实现负载均衡
首先这里环境如下
客户端本机代理服务器192.168.217.152后端服务器1192.168.217.153后端服务器2192.168.217.154
所以主机都已安装Nginx。 首先要启用负载均衡就需要在Nginx配置文件中定义后端服务器列表。同时指定负载均衡的代理服务器。 好的下面我们进行配置 192.168.217.152代理服务器 1、找到/etc/nginx/sites-available/default文件进行配置
upstream nginx_web{server 192.168.217.153;server 192.168.217.154;
}# 并在location部分加入
server {location / {root html;index index.html index.htm index.jsp index.ftl;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_pass http://nginx_web;}
}然后我们保存并退出。
2、重新加载配置文件
nginx -s reload3、192.168.217.153后端服务器配置
找到/var/www/html/index.nginx-debian.html文件进行修改由于我是克隆了之前的Ubuntu所以这里使用的中间件是Nginx然后我们进行修改。 同理另一台后端服务器也进行界面修改方面我们之后查看轮询算法。到这里我们即可配置完毕下面我们来查看效果 至此我们可以看到轮询算法即为每个请求按时间顺序逐一分配到不同的后端服务器上如果某台服务器死机自动提出故障系统使用户访问不受影响。 三、加权轮询算法实现负载均衡
我们在之前复现轮询算法实现负载均衡上进行操作所以我们这下只需修改主配置文件的upstream部分即可。 代理服务器 192.168.217.152
upstream nginx_web{server 192.168.217.153 weight1;server 192.168.217.154 weight2;
}同样的重新加载nginx -s reload 继续进行测试这里我们会发现一轮以内两次访问192.168.217.154一次访问192.168.217.153。 至此我们加权轮询算法复现完毕加权轮询算法即为weight的值越大分配到的访问概率越高主要用于后端每台服务器性能不均衡的情况下。或者仅仅为在主从的情况下设置不同的权值达到合理有效的地利用主机资源。指定轮询几率weight和访问比率成正比用于后端服务器性能不均的情况。 四、ip_hash实现负载均衡
同样的我们在之前复现加权轮询算法实现负载均衡上进行操作所以我们这下只需修改主配置文件的upstream部分即可。 代理服务器 192.168.217.152
upstream nginx_web{ip_hash;server 192.168.217.153:80;server 192.168.217.154:80;
}同样的重新加载nginx -s reload 继续进行测试我们会发现它固定访问了192.168.217.153这台服务器。 至此ip_hash实现负载均衡实现完毕每个请求按访问IP的哈希结果分配使来自同一个IP的访客固定访问一台后端服务器并且可以有效解决动态网页存在的session共享问题。每个请求按访问ip的hash结果分配这样每个访客固定访问一个后端服务器可以解决session的问题。