Nginx 动静分离配置(详细版)

本文介绍了Nginx 动静分离相关配置,主要包括了配置文件创建、配置示例、配置原理解析以及重新启用配置文件等等

本文目录

      • [1. 创建 Nginx 配置文件](#1. 创建 Nginx 配置文件)
      • [2. 配置示例](#2. 配置示例)
      • [3. 配置原理解析](#3. 配置原理解析)
      • [4. 启用配置文件并重新加载 Nginx](#4. 启用配置文件并重新加载 Nginx)

1. 创建 Nginx 配置文件

/etc/nginx/sites-available 目录下创建一个新的配置文件,如 ecommerce-p2p.conf

bash 复制代码
sudo nano /etc/nginx/sites-available/ecommerce-p2p.conf

2. 配置示例

nginx 复制代码
server {
    listen 80;
    server_name ecommerce-p2p.com;

    # 静态资源处理
    location ~* \.(jpg|jpeg|png|gif|css|js)$ {
        root /var/www/ecommerce-p2p/static;
        expires 30d;
    }

    # 动态资源处理
    location / {
        proxy_pass http://backend - servers;
        proxy_set_header Host $host;
        proxy_set_header X - Real - IP $remote_addr;
    }
}

upstream backend - servers {
    server 192.168.1.100:8080;
    server 192.168.1.101:8080;
}

3. 配置原理解析

  • 静态资源处理location ~* \.(jpg|jpeg|png|gif|css|js)$ 匹配以指定扩展名结尾的静态资源请求,将其指向 /var/www/ecommerce-p2p/static 目录,并设置缓存时间为 30 天。
  • 动态资源处理location / 匹配其他请求,将其转发到后端应用服务器组 backend-servers

4. 启用配置文件并重新加载 Nginx

bash 复制代码
sudo ln -s /etc/nginx/sites-available/ecommerce-p2p.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

|---------------------------------------------------------------------------------------------------|--------------------|--------------------------------------------------------------------------------------------------|
| ← 上一篇 MySQL------表添加索引多种方式 | 记得点赞、关注、收藏哦! | 下一篇 JUC小册------公平锁和非公平锁 → |

相关推荐
LJC_Superman9 小时前
Web与Nginx网站服务
运维·服务器·前端·网络·数据库·nginx·vim
ʚʕ̯•͡˔•̯᷅ʔɞ LeeKuma10 小时前
nginx常用命令(备忘)
服务器·nginx
误入运维泥潭13 小时前
LVS、Nginx与HAProxy负载均衡技术对比介绍
nginx·lvs·haproxy·keealived
专注代码七年13 小时前
Docker 本地开发环境搭建(MySQL5.7 + Redis7 + Nginx + 达梦8)- Windows11 版 2.0
nginx·docker·容器
牛奶咖啡1315 小时前
Nginx +Tomcat架构的必要性与应用示例
nginx·tomcat·nginx的静态动态资源配置·root与alias的区别·静态及负载均衡动态资源配置
Linlichaoblms16 小时前
Nginx性能调优:参数详解与压测对比
java·spring boot·nginx
feifeigo12319 小时前
在Ubuntu上配置Nginx实现开机自启功能
数据库·nginx·ubuntu
startdrift110620 小时前
docker run 命令,不接it选项,run一个centos没有显示在运行,而run一个nginx却可以呢?
nginx·docker·centos
DN金猿21 小时前
学习nginx location ~ .*.(js|css)?$语法规则
nginx