Nginx配置详细解释:(6)实现反向代理服务器,动静分离,负载均衡

目录

单台反向代理

proxy_pass后面加不加/的问题:

反向代理动静分离

反向代理负载均衡


作为代理服务器是当客户端访问代理服务器时,代理服务器代理客户端去访问真实web服务器。proxy_pass; 用来设置将客户端请求转发给的后端服务器的主机。

需要模块ngx_http_upstream_module支持。

单台反向代理

在第三台主机上下载安装httpd,在主页面/var/www/html/下写一个页面index.html

并启动systemctl start httpd别忘了关防火墙

在7-1上做代理服务器,写入location配置文件:

当有客户端访问我的IP时,我把请求转给指定的IP处理。保存退出,重新加载配置文件nginx -s reload

使用7-2访问7-1那么应该显示Node3的网页内容,也就是显示7-3 7-3

proxy_pass后面加不加/的问题:

location /test {

proxy_pass http://192.168.114.30; #不加/

}

这里直接是将/test附加到192.168.114.30后面,也就是192.168.114.30/test/index.html,也就是主站点要有test这个文件夹。

在web网站建立主页面index.html内容为/var/www/html在主页面中建立test文件夹,里面创建一个内容为/var/www/html/test的文件index.html

使用Node2访问192.168.114.10/test

可以发现获取到的是/var/www/html/test也就是192.168.114.10/test/index.html类似于root

如果加/:

location /test {

proxy_pass http://192.168.114.30/;

}

发现实际返回的是proxy_pass后面的url的内容,也就是192.168.114.10/index.html类似于alias

反向代理动静分离

动静分离是实现客户端访问动态和静态资源时,代理服务器通过匹配url访问不同的服务器。

用浏览器作为客户端,7-1反向代理,7-2作为静态服务器,7-3作为动态服务器。

7-2和7-3使用httpd即可,

7-1上的配置:

重启配置文件:nginx -s reload

开启正则表达式~*,不能加/

当在浏览器访问192.168.114.10/a.jpg时,代理服务器会匹配以.jpg结尾的url,转给Node3主机处理,访问a.jpg图片:

当在浏览器访问192.168.114.10/api时,匹配访问192.168.114.20静态服务器。

反向代理负载均衡

当客户端访问网页时,代理服务器通过对客户端发出的请求分别交给真实服务端依次提供服务,解决单台服务器负载问题。

当7-4客户机访问代理服务器7-1时,7-1分别交给7-2或7-3依次执行,对多个服务端设置成一个服务器组,upstream,在location模块中写入代理转交给组名称。

7-1代理服务器端的配置:

在web服务器组中,还可以加权重,weight=2;

server 192.168.114.20 weight=2;默认都是1,加权重之后就是192.168.114.20大概是两次,192.168.114.10大概是1次,并不是绝对的。

我们在两台真实服务器端使用httpd模拟web服务器。分别在主页写入文件:

在7-4上测试如下,发现每次访问代理服务器,7-2和7-3都会交替提供服务。实现负载均衡效果。

-------end---------

相关推荐
新*7 分钟前
ES 7.17 三节点 Docker 集群接入 IK 自定义词典:一次从丢插件到热更新的完整排障
运维·elasticsearch·docker·中文分词·ik分词
风翼靓崽15 分钟前
jenkins搭建与简单使用
运维·jenkins
Z21-X20 小时前
云原生运维学习笔记:ECShop全链路容器化部署与Docker底层资源隔离深度剖析
运维·笔记·学习·云原生
进击的荆棘1 天前
Linux系统——线程同步与互斥之线程池和安全
linux·运维·服务器·安全·单例模式·线程
瑞雪兆丰年兮1 天前
JavaWeb-day11-SpringBootWeb案例(文件上传)
java·运维·服务器·javaweb·oss
那明眸似水1 天前
云原生项目三:Docker秒级启动NextCloud个人网盘存储办公系统
linux·运维·docker·云原生·容器
小南家的青蛙1 天前
微服务体系下DevOps运维岗位面试方案设计
运维·面试·职场和发展·devops
知已难寻1 天前
Docker 入门:容器技术与 Docker 基础
java·运维·服务器·docker·云原生·容器
Alluxio2 天前
Alluxio + OCI:为 AI 工作负载实现亚毫秒访问延迟与可扩展吞吐
运维·数据库·人工智能·分布式·缓存·ai·语言模型
Sayai2 天前
Neo4j 图数据质量检查实战:环路检测、孤立节点与连通分量,两条 Cypher 引出的数据体检清单(含变长路径性能陷阱)
运维·neo4j·图数据库·数据质量·cypher