Nginx 反向代理与负载均衡

Nginx 反向代理与负载均衡

一、基本概念

1、代理概念

代理是指一个代表或渠道,涉及两个角色:

  • 被代理角色:实际的服务提供者(如某达斯厂家)
  • 目标角色:服务的消费者(如用户)
2、正向代理 vs 反向代理
正向代理
  • 特点:代理客户端,客户端明确知道要访问的目标服务器
  • 应用场景:科学上网、企业内部网络访问控制
  • 工作模式:客户端 → 正向代理 → 目标服务器
反向代理
  • 特点:代理服务器端,客户端不知道实际处理请求的服务器
  • 应用场景:服务器集群、负载均衡、高可用
  • 工作模式:客户端 → 反向代理 → 后端服务器集群

二、Nginx反向代理配置

核心模块
  • Http Proxy模块:实现反向代理功能
  • 常用指令
    • proxy_pass:指定后端服务器地址
    • proxy_cache:缓存功能(需集成第三方模块)

三、Nginx 负载均衡配置

环境配置
主机 Ip 安装 系统
Nginx 192.168.100.10 Nginx Centos7
Rs1 192.168.100.20 Httpd Centos7
Rs2 192.168.100.30 Httpd Centos7
  • 三台主机都关闭防火墙和 selinux,还需要配置好 yum 仓库
  • nginx 主机部署 nginx 服务
  • rs1、rs2 主机上,安装 httpd,然后添加一个测试网页
1、负载均衡之轮询
在 nginx 主机上,修改配置文件,设置负载均衡

vim /usr/local/nginx/conf/nginx.conf

nginx 复制代码
upstream webserver{
	server 192.168.100.20;
	server 192.168.100.30;
}

location / {
	proxy_pass http://webserver;
}
测试访问

进行刷新重复访问,负载均衡以轮询的方式将接收到的请求按照顺序逐一分配到不同的后端服务器

2、负载均衡之设置权重
在 nginx 主机上,修改配置文件,设置负载权重

vim /usr/local/nginx/conf/nginx.conf

nginx 复制代码
upstream webserver{
	server 192.168.100.20 weight=2;
	server 192.168.100.30;
}

location / {
	proxy_pass http://webserver;
}
测试访问

进行刷新重复访问,发现 rs1 访问两次后才轮询到 rs2

3、负载均衡之 ip_hash
在 nginx 主机上,修改配置文件,设置负载权重 ip_hash

vim /usr/local/nginx/conf/nginx.conf

nginx 复制代码
upstream webserver{
    ip_hash;
	server 192.168.100.20 weight=2;
	server 192.168.100.30;
}

location / {
	proxy_pass http://webserver;
}
测试访问

进行刷新重复访问,发现访问全部是 rs1

nginx 记录了这个 ip 和 hash 值,那么下次同一个 ip 过来还是会分配到这个 httpd

四、动静分离 nginx+tomcat

环境配置
  • 添加一台 Tomcat:192.168.100.40

  • 部署测试网页

配置 nginx,设置动静分离

vim /usr/local/nginx/conf/nginx.conf

nginx 复制代码
upstream webserver{
	server 192.168.100.20;
	server 192.168.100.30;
}
upstream tomcat{
	server 192.168.100.40:8080;
}

location / {
	proxy_pass http://webserver;
}
location /test {
	proxy_pass http://tomcat;
}
测试访问
相关推荐
SelectDB4 小时前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
XIAOHEZIcode2 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220702 天前
如何搭建本地yum源(上)
运维
ping某3 天前
为什么 Nginx 明明监听了 80,转发后端时却用了 4xxxx 端口?
后端·nginx
大树885 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠5 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质5 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工5 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智5 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_5 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化