在 Nginx 中配置动静分离可以提高网站的性能和并发处理能力,静态资源(如图片、样式表、JavaScript 文件等)和动态内容(如 HTML 页面、API 请求等)可以分别由不同的后端服务处理。以下是一个简单的配置示例:
假设静态资源存放在 /var/www/static 目录下,动态内容由后端应用程序处理,以下是如何在 Nginx 中配置动静分离:
# 配置动态内容的反向代理
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
}
# 配置静态资源的访问
server {
listen 80;
server_name static.example.com;
root /var/www/static;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
上面的配置中,动态内容由 / 路径处理,反向代理到后端应用程序(http://backend)。而静态资源由 static.example.com 主机名处理,静态文件的根目录为 /var/www/static,当访问静态资源时,Nginx 将直接返回文件,而不是通过反向代理。
这样配置后,所有的动态内容都会被发送到后端应用程序处理,而静态资源会直接由 Nginx 返回,从而实现了动静分离。