当前位置: 首页 > news >正文

08. Nginx进阶-Nginx动静分离

简介

什么是动静分离?

通过中间件将动态请求和静态请求进行分离。分离资源,减少不必要的请求消耗,减少请求延时。

动静分离的好处

动静分离以后,即使动态服务不可用,静态资源仍不受影响。

动静分离示意图

动静分离应用

主机规划

主机名称主机地址主机用途备注
k8s-master-1192.168.108.129负载均衡主机Nginx Proxy
k8s-master-2192.168.108.130静态资源主机Nginx Static
k8s-master-3192.168.108.131动态资源主机Tomcat Server

应用

Nginx配置

静态资源主机

  1. 信息

主机:192.168.108.130
路径:/etc/nginx/conf.d/static.conf

  1. 配置
server {listen 8080;server_name location;root /www/static/app;index index.html index.htm;location ~* .*\.(png|jpg|gif)$ {root /www/static/app/images;}
}
  1. 资源
#静态资源准
mkdir -p /www/static/app/images
cd /www/static/app/images
#上传静态图片#访问页面准备
cat > /www/static/app/index.html << EOF
<img src="./ai-1.jpg" alt="Image-1"><img src="./ai-2.jpg" alt="Image-2"><img src="./ai-3.jpg" alt="Image-3">
EOFnginx -t
systemctl restart nginx
  1. 查看静态资源
curl -iv 127.0.0.1:8080

image.png

动态资源主机

  1. 安装Tomcat
yum -y install tomcat
  1. 信息

主机:192.168.108.131
路径:/usr/share/tomcat/webapps/ROOT/java_test.jsp

  1. 资源
mkdir -p /usr/share/tomcat/webapps/ROOT
cat > /usr/share/tomcat/webapps/ROOT/java_test.jsp << EOF
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<HTML><HEAD><TITLE>JSP Test Page </TITLE></HEAD><BODY><%Random rand = new Random();out.println("<h1>Random number:</h1>");out.println(rand.nextInt(99)+100);%></BODY>
</HTML>
EOF
  1. 查看动态资源
curl -iv http://192.168.108.131:8080/java_test.jsp

image.png

负载均衡主机

  1. 信息

主机:192.168.108.129
路径:/etc/nginx/conf.d/wangmingqu.conf

  1. 配置
upstream static {server 192.168.108.130:80;
}upstream java {server 192.168.108.131:8080;
}server {listen       80;server_name  wang.mingqu.com;charset utf-8;location ~ .*\.(png|jpg|gif)$ {proxy_pass http://static;}location ~ .*\.jsp$ {proxy_pass http://java;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   /usr/share/nginx/html;}}
  1. 验证动静分离
#访问动态页面
curl -iv http://wang.mingqu.com/java_test.jsp#访问静态页面
curl -iv http://wang.mingqu.com/ai-1.jpg

动态页面
image.png
静态页面
image.png

http://www.lryc.cn/news/311386.html

相关文章:

  • RPC--一起学习吧之架构
  • 服务器后端是学习java还是php
  • DCFL: for Oriented Tiny Object Detection
  • 代码学习记录11
  • 【LeetCode】第 387 场周赛
  • 基于 Vue3打造前台+中台通用提效解决方案(下)
  • Topaz Video AI:一键提升视频品质,智能重塑影像魅力 mac/win版
  • 高效办公软件中哪个提醒待办事项更有效
  • 牛客练习赛122
  • 软考复习调整策略和学习计划!
  • 1小时网络安全事件报告要求,持安零信任如何帮助用户应急响应?
  • mysql使用连接池
  • 06. Nginx进阶-Nginx代理服务
  • STM32 (1)
  • Spring初始(相关基础知识和概述)
  • 【Swift 周报 第四十七期
  • STM32(16)使用串口向电脑发送数据
  • 利用大模型技术进行测试用例推荐如何实现
  • Linux学习:初识Linux
  • Python CGI编程错误汇总
  • 第十三届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组 统计子矩阵
  • 计算机网络实验 基于ENSP的协议分析
  • Java实现手机库存管理
  • 单片机入门:LED数码管
  • 软考信息系统项目管理师零基础怎么学习?
  • 【轮式平衡机器人】——TMS320F28069片内外设之Timer_IT(补:CCS程序烧录方法)
  • 安装Proxmox VE虚拟机平台
  • 后端项目访问不了
  • Qt 运行一个实例进程
  • Installing Git (安装 Git)