nginx负载均衡

nginx负载均衡

1.nginx负载均衡

  • 关闭防火墙与selinux

1.安装nginx

julia 复制代码
#安装1.26.1版本nginx
[root@localhost ~]# vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
[root@localhost ~]# yum -y install nginx
#更改nginx配置文件

2.实验环境

  • 准备三台机器
  • 分别下载nginx
  • 负载均衡器:192.168.222.130
  • 两台服务端:192.168.222.131;192.168.222.132

3.更改nginx配置文件(192.168.222.130)

julia 复制代码
[root@localhost ~]# vim /etc/nginx/conf.d/default.conf
upstream takehaye {
	server 192.168.222.131:80;
	server 192.168.222.132:80;
	}
server {
	listen		80;
	server_name	localhost;
	location / {
	proxy_pass	http://192.168.222.130
	}
}
#检查nginx配置文件
[root@localhost ~]# nginx -t
#重启服务
[root@localhost ~]# systemctl restart nginx

4.更改服务端测试页面(192.168.222.131;192.168.222.132)

julia 复制代码
#192.168.222.131
[root@localhost ~]# rm -rf /usr/share/nginx/html/*
[root@localhost ~]# echo "11111111111" > /usr/share/nginx/html/index.html
[root@localhost ~]# systemctl restart nginx
#192.168.222.132
[root@localhost ~]# rm -rf /usr/share/nginx/html/*
[root@localhost ~]# echo "22222222222" > /usr/share/nginx/html/index.html
[root@localhost ~]# systemctl restart nginx

2.7层协议

1.7层协议

2.配置nginx代理服务器的配置文件

julia 复制代码
#这里要加到主配置文件
#upstream与server在http之下;upstream与server是同级
[root@localhost ~]# vim /etc/nginx/nginx.conf

user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}



http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  0;

    #gzip  on;

    #include /etc/nginx/conf.d/*.conf;


    upstream takehaye {
        server 192.168.222.131:80 weight=2;
        server 192.168.222.132:80 weight=2;
   }
   server {
        listen          80;
        server_name     www.takehaye.com;
        location / {
                proxy_pass http://takehaye;
        }
   }
   upstream yhb {
        server 192.168.222.131:80 weight=3;
        server 192.168.222.132:80 weight=1;
   }
   server {
        listen          8080;
        server_name     www.yhb.com;
        location / {
        proxy_pass http://yhb;
        }
   }
}

#检查配置问价是否正确
[root@localhost ~]# nginx -t
#重启服务
[root@localhost ~]# systemctl restart nginx

3.配置Windows本地解析

#配置本地解析

路径:c:\windows\System32\drivers\etc\hosts

添加: 192.168.222.130 www.takehaye.com

192.168.222.130 www.yhb.com

3.会话保持

  • ip_hash使用哈希算法,将同意客户端的请求总是发往同一个后端服务器,除非该服务器不可用
julia 复制代码
upstream takehaye {
	server 192.168.222.131:80;
	server 192.168.222.132:80;
	ip_hash;
}
  • ip_hash使用哈希算法,将同意客户端的请求总是发往同一个后端服务器,除非该服务器不可用
julia 复制代码
upstream takehaye {
	server 192.168.222.131:80;
	server 192.168.222.132:80;
	ip_hash;
}
相关推荐
ping某2 天前
为什么 Nginx 明明监听了 80,转发后端时却用了 4xxxx 端口?
后端·nginx
大树884 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠4 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质4 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工4 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智4 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_4 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉4 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
AC赳赳老秦4 天前
用 OpenClaw 搭建服务器故障应急响应系统,自动处理 80% 常见运维故障
android·运维·服务器·python·rxjava·deepseek·openclaw
java_cj4 天前
深入kube-apiserver认证机制:从Bearer Token到mTLS的完整认证链解析
linux·运维·服务器·云原生·容器·kubernetes