Linux中web集群-nginx负载均衡及案例

概述

代理:外卖,中介,中间商,用户无法直接做事情,通过中介进行处理

用户--》代理--》节点,后面只有一个节点,一般使用的是nginx代理功能即可,如果是集群就需要使用nginx负载均衡

代理分类

本质:根据用户位置(定是否那个为正反向代理)

正向代理:用户(服务器)-》代理-》外部(网站)服务器通过代理实现共享上网/某一个网站

反向代理:用户(app/浏览器)-》代理-》网站服务器(WEB) 给网站设置一个统一的入口,可以进行使用负载均衡的功能进行使用

环境概述

代理:web lb01 10.0.0.5/172.16.1.5

web web01 10.0.0.7/172.16.1.7

域名proc.wulinlinux.cn

站点目录:/app/code/proxy/index.html

建议开启db01和nfs01

bash 复制代码
[root@web01 ~]#vim /etc/nginx/conf.d/proxy.wulinlinux.cn.conf

检查语法:

[root@web01 ~]#nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

systemctl reload nginx

[root@web01 ~]#mkdir -p /app/code/proxy/

[root@web01 ~]#echo proxy.wulinlinux.cn >/app/code/proxy/index.html

测试:

bash 复制代码
[root@lb01 ~]#vim /etc/nginx/conf.d/proxy.wulinlinux.cn.conf



测试负载:

保存



web集群-nginx-负载均衡

案例:部署nginxconf站点并进行访问

lb01 192.168.65.5/172.16.1.5
环境要求 说明
web01 192.168.65.7/172.16.1.7
web02 192.168.65.8/172.16.1.8
域名:conf.wulinlinux.cn
站点目录:/app/code/cfg/

web服务器准备

go 复制代码
[root@web01 ~]#vim /etc/nginx/conf.d/cfg.wulinlinux.cn.conf

创建站点目录:

bash 复制代码
[root@web01 ~]#mkdir -p /app/code/cfg/

传输部署网站的代码

解压传输的部署网站代码(解压进行查看是否有嵌套的代码文件目录)

解压到站点目录

bash 复制代码
[root@web01 ~]#unzip  star-battle-master.zip -d /app/code/cfg/

把下面所有的东西移动到相对应的站点目录里面

bash#检查语法并且进行重启nginx服务 复制代码
[root@web01 /app/code/cfg]#nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@web01 /app/code/cfg]#systemctl reload nginx
在这里插入代码片

打开web02发现没有nginx等源

进入web01服务器进行传输到web02服务器上


[root@web01 /etc/nginx/conf.d]#cd /app/

[root@web01 /app]#scp -r /app/ web02:/

ssh: connect to host web02 port 22: Connection timed out

lost connection

[root@web01 /app]#scp -r /app/ 192.168.65.8:/

[root@web02 ~]#systemctl enable nginx

Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.

[root@web02 ~]#systemctl start nginx


负载均衡配置

  • load balance(lb)
  • 创建池塘进行分组,存放主机
  • upstream 与server是并列的
  • 名字要进行保持一致
  • upstream创建池塘,proxy_pass将数据传给池塘
bash 复制代码
[root@lb01 /etc/nginx/conf.d]#cat cfg.wulinlinux.cn 
upstream cfg_pols {
   server 192.168.65.7:80;
   server 192.168.65.8:80;
}
server {
   listen 80;
   server_name cfg.wulinlinux.cn;

   error_blog /var/log/nginx/cfg-error.blog notice;
   access_blog /var/log/nginx/cfg-access.log main;

   location / {
     # proxy_pass http://?????;
      proxy_pass http://cfg_pols;
      proxy_set_header Host $http_host;
      proxy_set_header X-Real-Ip $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   }
}

[root@lb01 /etc/nginx/conf.d]#curl -H Host:cfg.wulinlinux.cn http://192.168.65.5/

会发现这里返回的结果是web01与web02服务器交换进行:(负载均衡---平均分配)

总结

  • upstream模块的upstream指令;

  • [root@lb01 /etc/nginx/conf.d]#cat cfg.wulinlinux.cn

    upstream cfg_pols {

    server 192.168.65.7:80;

    server 192.168.65.8:80;

    }

    server {

    listen 80;

    server_name cfg.wulinlinux.cn;

    error_blog /var/log/nginx/cfg-error.blog notice;

    access_blog /var/log/nginx/cfg-access.log main;

    location / {

    proxy_pass http://???;

    ​ proxy_pass http://cfg_pols;

    ​ proxy_set_header Host $http_host;

    ​ proxy_set_header X-Real-Ip $remote_addr;

    ​ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    }

    }

  • lnmp深入原理及排查故障

  • 1.代理基础功能把请求通过代理转发到某一台web节点上

  • 2.转发的时候记录真实的ip

  • 3.负载均衡基本使用

相关推荐
第六五1 小时前
ubuntu挂载磁盘或U盘
linux·运维·ubuntu
Moon里1 小时前
【CSS】字体文本
前端·css
RaidenQ2 小时前
2024.9.27 Python面试八股文
linux·开发语言·python
深情的小陈同学3 小时前
Linux —— udp实现群聊代码
linux·运维·服务器
Jonathan Star4 小时前
两个圆形 一个z里面一个z外面,z里面的大,颜色不同 html
前端·html
洛小豆5 小时前
前端开发必备:三种高效定位动态类名元素的 JavaScript 技巧
开发语言·前端·javascript·面试
啵一杯6 小时前
leetcode621. 任务调度器
服务器·前端·数据结构·算法·c#
YRr YRr7 小时前
CMake 中 add_definitions() 使用的注意事项及替代方案
linux·c++·windows·cmake
2401_857297917 小时前
2025校招内推-招联金融
java·前端·算法·金融·求职招聘
琴~~7 小时前
前端全屏模式切换
前端·javascript