nginx 的反向代理 负载均衡 动静分离 重写

反向代理:客户端访问代理服务器,代理服务器代理web站点响应用户请求

一台nginx 一台tomcat

实现nginx反向代理tomcat

(用户访问nginx服务器,实际访问到的是tomcat页面)

开启nginx服务

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

修改配置文件,代理tomcat的地址192.168.38.5:8080

nginx -s reload

打开浏览器输入192.168.38.3

反向代理二

根据访问的不同路径 nginx 反向代理到不同的服务器上

http://192.168.38.3/edu 直接跳转到 192.168.38.5:8080/edu

http://192.168.38.3/vod 直接跳转到 192.168.38.6:8080/vod

两台tomcat 服务器 地址分别为 192.168.10.45 192.168.10.47 并tomcat 都已启动

准备edu 和aaa测试页面

192.168.38.5主机

cd /usr/local/tomcat/webapps/

mkdir edu

echo "edu.com" > edu/index.html

192.168.38.6主机

cd /usr/local/tomcat/webapps/

mkdir aaa

echo "8888" > aaa/index.html

修改nginx 主机 配置文件

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

nginx -s reload

网页测试

192.168.38.3/edu/

192.168.38.3/aaa/

负载均衡:nginx作为调度服务器,反向代理多台web服务器响应用户请求

策略: 轮询 权重 ip_hash fair(按照后端相应时间)

在上面实验的基础上做

将 192.168.38.6 中 aaa 文件夹 更名为 edu

cd /usr/local/tomcat/webapps

mv aaa edu

修改nginx 服务器配置文件

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

nginx -s reload

浏览器测试,刷新内容交替出现

动静分离

将动态请求和静态请求分开

两种方案:

纯粹的把静态资源独立成单独的域名 放到一台服务器上 目前主流的方法

另一种是动态跟静态资文件混合在一起发布 通过 nginx 来分开

准备静态资源

nginx 服务器上

cd /

mkdir /data

cd /data

mkdir www image

echo "<h1>static web test</h1>" > www/test.html

cd image //上传两张图片并改名

动态资源使用 tomcat 服务器 默认 无需改动

修改 nginx 配置文件

nginx -s reload

网页测试

http://192.168.38.3/image/1.png

http://192.168.38.3/image/2.png

http://192.168.38.3/index.jsp

重写

rewrite功能就是,使用nginx提供的全局变量或自己设置的变量,使用nginx提供的全局变量或自己设置的变量,结合正则表达式和标记位实现URL重写以及重定向。更换域名后需要保持旧的域名能跳转到新的域名上、某网页发生改变需要跳转到新的页面、网站防盗链等等需求

修改配置文件

重读 nginx -s reload

本地磁盘地址C:\Windows\System32\drivers\etc\hosts

域名解析

浏览器访问www.aax.com 会转到 www.liangzhi.cn

相关推荐
123过去1 小时前
ike-scan使用教程
linux·测试工具
ywf12151 小时前
前端的dist包放到后端springboot项目下一起打包
前端·spring boot·后端
恋猫de小郭1 小时前
2026,Android Compose 终于支持 Hot Reload 了,但是收费
android·前端·flutter
hpoenixf7 小时前
2026 年前端面试问什么
前端·面试
还是大剑师兰特7 小时前
Vue3 中的 defineExpose 完全指南
前端·javascript·vue.js
疯狂吧小飞牛7 小时前
GPG基础指令
linux·服务器·网络
C++ 老炮儿的技术栈7 小时前
volatile使用场景
linux·服务器·c语言·开发语言·c++
泯泷7 小时前
阶段一:从 0 看懂 JSVMP 架构,先在脑子里搭出一台最小 JSVM
前端·javascript·架构
mengchanmian8 小时前
前端node常用配置
前端
华洛8 小时前
利好打工人,openclaw不是企业提效工具,而是个人助理
前端·javascript·产品经理