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.负载均衡基本使用

相关推荐
菜根Sec7 分钟前
XSS跨站脚本攻击漏洞练习
前端·xss
m0_7482571814 分钟前
Spring Boot FileUpLoad and Interceptor(文件上传和拦截器,Web入门知识)
前端·spring boot·后端
桃园码工31 分钟前
15_HTML5 表单属性 --[HTML5 API 学习之旅]
前端·html5·表单属性
真真-真真40 分钟前
WebXR
linux·运维·服务器
轩辰~1 小时前
网络协议入门
linux·服务器·开发语言·网络·arm开发·c++·网络协议
百万蹄蹄向前冲1 小时前
2024不一样的VUE3期末考查
前端·javascript·程序员
轻口味2 小时前
【每日学点鸿蒙知识】AVCodec、SmartPerf工具、web组件加载、监听键盘的显示隐藏、Asset Store Kit
前端·华为·harmonyos
alikami2 小时前
【若依】用 post 请求传 json 格式的数据下载文件
前端·javascript·json
雨中rain2 小时前
Linux -- 从抢票逻辑理解线程互斥
linux·运维·c++
吃杠碰小鸡2 小时前
lodash常用函数
前端·javascript