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

Nginx实现动静分离

一、概述

1、什么是动静分离

动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作,这就是网站静态化处理的核心思路。

动静分离简单的概括是:动态文件与静态文件的分离。

2、Nginx实现动静分离

Nginx 动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离。严格意义上来说,应该是动态请求跟静态请求分开,可以理解成使用 Nginx 处理静态页面,Tomcat 处理动态页面。

动静分离从目的实现的角度,大致分为两类:

  • 一种是纯粹把静态文件独立成单独的域名,放在独立的服务器上,这种是目前主流推崇的方案之一。
  • 一种是将动态资源和静态资源混合在一起发布,通过 Nginx 来调度分开。

Nginx实现动静分离通过 location参数设置对请求url进行匹配即可。

二、Nginx实现动静分离

静态资源和 Nginx服务放在一个服务器中。

1、准备工作

这里准备两台tomcat服务器,一台服务器为静态资源访问,另一台服务器为动态资源访问。

在静态资源服务器创建 目录,存放一些文件。

#启动tomcat8080:
/usr/local/tomcat8080/bin/startup.sh
#关闭tomcat8080:
/usr/local/tomcat8080/bin/shutdown.sh

在这里插入图片描述

2、实例

第一步:修改Nginx的配置文件

vi /usr/local/nginx/conf/nginx.conf

http {# upstream模块:自定义服务组名upstream my_tomcat_server{server 192.168.xxx.x10:8080;}server {listen       80;#server_name  localhost;server_name  192.168.xxx.xxx;charset utf-8;# 静态资源访问location /static/ {alias       /usr/local/mystatic/;# autoindex作用为展示目录autoindex   on;}# 动态资源访问location /dy/ {root   html;index  index.html index.htm;# proxy_pass:代理转发,指定我们配置负载均衡的服务名my_tomcat_serverproxy_pass http://my_tomcat_server/;# 增加下面内容proxy_set_header        Host                    $host;proxy_set_header        X-Real-IP               $remote_addr;proxy_set_header        X-Forwarded-For         $proxy_add_x_forwarded_for;}}

静态资源的匹配URL规则自定义,比如:

#匹配到http://ip/*.jpg或者*.gif或者*.png或者*.css时,交由静态资源服务器处理
location ~ .*\.(jpg|gif|png|css) {...
}

第二步:重启Nginx

修改 nginx完之后,保存退出,重启Nginx。

# 先执行停止命令再执行启动命令
[root@centos7 sbin]# /usr/local/nginx/sbin/nginx -s quit
[root@centos7 sbin]# /usr/local/nginx/sbin/nginx

第三步: 浏览器访问

nginx访问静态资源服务器:

添加 charset utf-8; 解决中文名乱码问题。

在这里插入图片描述
nginx访问动态资源服务器:

在这里插入图片描述

– 求知若饥,虚心若愚。

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

相关文章:

  • 【算法题】309. 买卖股票的最佳时机含冷冻期
  • 1951-2011年长序列高时空分辨率月尺度温度和降水数据集
  • 十天学完基础数据结构-第六天(树(Tree))
  • RobotFramework流程控制(最新版本)
  • win11 好用的 快捷方式 --chatGPT
  • 在大数据相关技术中,HBase是个分布的、面向列的开源数据库,是一个适合于非结构化数据存储的数据库。
  • 910数据结构(2020年真题)
  • MyBatisPlus(八)范围查询
  • 【day10.04】QT实现TCP服务器客户端搭建的代码
  • milvus 结合Thowee 文本转向量 ,新建表,存储,搜索,删除
  • GEO生信数据挖掘(三)芯片探针ID与基因名映射处理
  • 力扣 -- 96. 不同的二叉搜索树
  • 经典算法-枚举法(百钱买百鸡问题)
  • Gurobi设置初始可行解
  • Zabbix配置监控文件系统可用空间小于30GB自动告警
  • 进程调度算法之先来先服务(FCFS),短作业优先(SJF)以及高响应比优先(HRRN)
  • MyBatisPlus(九)模糊查询
  • Spring 原理
  • 基于微信小程序的明星应援小程序设计与实现(源码+lw+部署文档+讲解等)
  • try catch 中的finally什么时候运行
  • 力扣 -- 322. 零钱兑换(完全背包问题)
  • [python]pip安装requiements.txt跳过错误包继续安装
  • 1.5 计算机网络的类别
  • Go 基本数据类型和 string 类型介绍
  • Python中print()打印如何不换行?
  • python 学习随笔 4
  • 【网络安全-信息收集】网络安全之信息收集和信息收集工具讲解
  • 设计模式12、代理模式 Proxy
  • ZXing - barcode scanning library for Java, Android
  • MySQL存储引擎:选择合适的引擎优化数据库性能