nginx动静分离

1、什么是nginx动静分离?

Nginx 动静分离是一种优化 Web 服务器性能和资源利用率的策略,它将网站的动态内容(如 PHP、Java、Python 等脚本生成的页面)与静态内容(如 HTML、CSS、JavaScript、图片等文件)分离开来,各自采用不同的方式处理和分发。

2、动静分离的目的?


1. 提高性能


静态资源通常不需要服务器端进行复杂计算,Nginx 作为高性能的反向代理和负载均衡器,能够快速、高效地直接返回静态内容,减少后端应用服务器(如 Tomcat、Apache 等)的压力。


2. 缓存利用


静态资源非常适合被浏览器缓存,Nginx 可以设置缓存策略(如 Expires、Cache-Control 头),使客户端在有效期内直接从本地缓存加载资源,减少网络带宽消耗和服务器负载。


3. 简化架构


动静分离可以使后端应用专注于处理业务逻辑,而静态资源的托管、分发等工作由专门的服务器或服务(如 CDN)负责,提高整体系统的可扩展性和可维护性。


4. 故障隔离


动静分离后,即使动态服务出现故障,静态资源仍能正常提供,保证网站部分功能可用,提升用户体验。


3、实现 Nginx 动静分离的基本步骤和配置示例:


步骤一:配置静态资源服务器


1. 确定静态资源路径


确定哪些目录或文件属于静态资源,例如 /var/www/static。


2. 配置 Nginx


在 Nginx 的 server块内添加 location 规则来匹配静态资源,并指定其本地存储路径:

server {
    listen 80;
    server_name example.com;

    location /static/ {
        alias /var/www/static/;  # alias指定的路径不需要拼接,root指定的路径需要拼接。
        expires 30d;  # 设置静态资源缓存有效期为30天
    }
}

上述配置中,所有访问 

http://example.com/static/


 开头的 URL 将映射到服务器本地的目录。

/var/www/static/


步骤二:配置动态内容服务器


1. 设置后端应用服务器

确保动态内容服务器(如 Tomcat、Node.js 服务等)运行正常,并监听在特定端口上。

2. 配置反向代理

在 Nginx 中添加另一个 location规则,使用 proxy_pass
 指令将非静态资源的请求转发至后端应用服务器:

location / {
    proxy_pass http://localhost:8080;  # 假设后端应用监听在本地8080端口
    include proxy_params;  # 引入通用代理参数配置(如保持Host头等)
}

此配置表示除静态资源外的所有请求都将被转发到 http://localhost:8080。


可选步骤:进一步优化


• 按文件扩展名区分动静


根据文件类型(如 .html, .css, .jpg 等)来判断请求是否为静态资源,并分别处理:
 

location ~* \.(html|css|js|png|jpg|gif)$ {
    alias /var/www/static/;
    expires 30d;
}

location / {
    proxy_pass http://localhost:8080;
    include proxy_params;
}

• 使用独立域名或子域名


为静态资源分配一个独立的域名(如 static.example.com)或子域名(如 cdn.example.com),以更好地利用浏览器缓存和CDN服务。


• 启用缓存


除了设置 expires 外,还可以使用 Nginx 的 proxy_cache 模块对动态内容进行缓存,进一步减轻后端服务器压力。


通过以上配置和优化措施,Nginx 实现了动静分离,使得网站的静态资源和动态内容分别得到高效、合理的处理和分发。

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值