关于Nginx动静分离的详解以及配置
一、什么是动静分离
动静分离是将应用程序(网站)中的动态页面与静态页面分离放置于不同的服务器上进行更好地服务。动态页面表示每次访问均会进行业务逻辑处理的页面例如登录、提交表单等,静态页面表示所有用户访问的信息都是固定的,如CSS样式表和JS脚本文件等。将动态与静态页面分离,可以有效降低服务器的负载,并提高网站的响应速度。
二、动静分离的实现方式
1. 通过DNS解析,指向不同的服务器
2. 通过Nginx 配置动静分离(列举本文的实现方式)
三、配置Nginx 实现动静分离
示例一:将www.abc.com/path下的静态内容指向静态资源服务器,同时动态页面和其他请求均指向应用服务器
http {
upstream backend {
server 127.0.0.1:8080;
server 127.0.0.1:8081;
}
upstream static {
server 192.168.0.12:80;
}
server {
listen 80;
server_name www.abc.com;
location /path/ {
proxy_pass http://static;
}
location / {
proxy_pass http://backend;
}
}
}
示例二:将不同类型的静态内容指向不同的静态资源服务器,例如将图片(png、jpg等)资源指向img服务器,将静态文件(css、js等)指向static服务器
http {
upstream dynamic {
server 127.0.0.1:8080;
server 127.0.0.1:8081;
}
upstream static_img {
server 192.168.0.12:80;
}
upstream static_css_js {
server 192.168.0.13:80;
}
server {
listen 80;
server_name www.abc.com;
# 将图片文件指向static_img
location ~ .*\.(gif|jpg|jpeg|png)$ {
proxy_pass http://static_img;
}
# 将CSS、JS文件指向static_css_js
location ~ .*\.(css|js)$ {
proxy_pass http://static_css_js;
}
# 其他请求均指向应用服务器
location / {
proxy_pass http://dynamic;
}
}
}
以上就是关于nginx动静分离的详细说明和两条示例,希望对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:关于Nginx动静分离详解以及配置 - Python技术站