动静分离
原创...大约 2 分钟
Nginx 动静分离简单来说就是把动态和静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离。严格意义上说应该是动态请求和静态请求分开,可以理解成使用 Nginx 处理静态请求,Tomcat 处理动态请求。
动:必须依赖服务器生存的文件 比如 jsp。
静:不需要依赖容器的比如 css/js 或者图片等文件
动静分离的好处
Nginx 本身就是一个高性能的静态 web 服务器
其实静态文件有一个特点就是基本上变化不大,所以动静分离以后我们可以对静态文件进行缓存、或者压缩提高网站性能处
在 Nginx 的 conf 目录下,有一个 mime.types 文件里边列出了 静态资源的类型,如下:
当用户访问一个网站,然后从服务器端获取相应的资源,通过浏览器进行解析渲染最后展示给用户,服务端可以返回各种类型的内容,比如 xml、jpg、png、gif、flash、MP4、html、css 等等,浏览器就是根据 mime-type
来决定用什么形式来解析和展示的。服务器返回的资源给到浏览器时,会把媒体类型告知浏览器,这个告知的标识就是Content-Type
,比如Content-Type:text/html
。
静态资源的准备
在服务器中准备文件夹放置图片、css、js。
mkdir -p /usr/local/nginx/static
通过请求分离
http {
upstream webservers { # upstream 需要一个名字
server 192.168.66.101:8080 weight=5;
server 192.168.66.102:8080 weight=5;
}
server {
listen 80;
server_name www.itmayiedu.com;
location / {
root html;
index index.html index.htm;
proxy_set_header Host $host;
proxy_pass http://webservers;
}
location /image/ {
root static;
}
location /web/ {
proxy_set_header Host $host;
proxy_pass http://webservers;
}
}
}
根据扩展名分离
http {
upstream webservers { # upstream 需要一个名字
server 192.168.66.101:8080 weight=5;
server 192.168.66.102:8080 weight=5;
}
server {
listen 80;
server_name www.itmayiedu.com;
location / {
root html;
index index.html index.htm;
proxy_set_header Host $host;
proxy_pass http://webservers;
}
location ~ .*.(jpg|png|gif|css|js)$ {
root static;
}
}
}
Powered by Waline v2.15.7