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

发布于:2024-06-26 ⋅ 阅读:(162) ⋅ 点赞:(0)

概述

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

用户–》代理–》节点,后面只有一个节点,一般使用的是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

[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

测试:
在这里插入图片描述

[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服务器准备

[root@web01 ~]#vim /etc/nginx/conf.d/cfg.wulinlinux.cn.conf

在这里插入图片描述
创建站点目录:

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

传输部署网站的代码
在这里插入图片描述
解压传输的部署网站代码(解压进行查看是否有嵌套的代码文件目录)
在这里插入图片描述
解压到站点目录

[root@web01 ~]#unzip  star-battle-master.zip -d /app/code/cfg/

把下面所有的东西移动到相对应的站点目录里面
在这里插入图片描述

[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将数据传给池塘
[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.负载均衡基本使用


网站公告

今日签到

点亮在社区的每一天
去签到