跳至主要內容

动静分离

刘春龙原创...大约 2 分钟LinuxNginxWEB服务器教程文档

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