Nginx动静分离实现
一、前言
本文主要介绍在nginx做负载均衡的情况下做动静分离,我们将应用的静态文件抽离出来,使之负载的应用同时共享该静态资源。
二、简单配置
主要是在同一台服务器下做动静分离,在http节点添加如下配置即可
server {
# 监听端口默认是80
listen 80;
# 服务器ip或域名
server_name 192.168.140.130;
# 动态数据
location / {
proxy_pass http://xiaohemiao;
}
# 静态资源
location ~ \.(ico|js|css|png|jpg|mp4)$ {
# 静态文件目录(自定义)
root /data/apps/wwwroot/;
}
}
upstream xiaohemiao {
server 192.168.140.130:7777; # 应用端口7777
server 192.168.140.130:8888; # 应用端口8888
}
应用结构
二、模拟在多台服务器配置
模拟的场景主要是静态资源和动态资源不在同一台服务器的情况
# 只加载动态资源
server {
# 监听端口默认是80
listen 80;
# 服务器ip或域名
server_name 192.168.140.130;
# 动态数据
location / {
proxy_pass http://xiaohemiao;
}
}
# 只加载静态资源
server {
# 监听端口默认是8081
listen 8081;
# 服务器ip或域名
server_name 192.168.140.130;
# 静态资源
location ~ \.(ico|js|css|png|jpg|mp4)$ {
root /data/apps/wwwroot/;
}
}
# 合并静态资源和动态资源
server {
# 监听端口默认是8082
listen 8082;
# 服务器ip或域名
server_name 192.168.140.130;
# 代理动态资源
location / {
proxy_pass http://192.168.140.130:80;
}