6、配置示例 -> 动静分离
Nginx 动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离。
严格意义上说应该是动态请求跟静态请求分开,可以理解成使用Nginx 处理静态页面,Tomcat 处理动态页面。
动静分离从目前实现角度来讲大致分为两种,
一种是纯粹把静态文件独立成单独的域名,放在独立的服务器上,也是目前主流推崇的方案;另外一种方法就是动态跟静态文件混合在一起发布,通过 nginx 来分开。
通过 location 指定不同的后缀名实现不同的请求转发。通过expires参数设置,可以设置浏览器缓存过期时间,减少与服务器之前的请求和流量。
具体 Expires 定义:是给一个资源设定一个过期时间,也就是说无需去服务端验证,直接通过浏览器自身确认是否过期即可, 所以不会产生额外的流量。此种方法非常适合不经常变动的资源。(如果经常更新的文件, 不建议使用 Expires 来缓存),设置值为 3d,表示在这 3 天之内访问这个 URL,发送 一个请求,比对服务器该文件最后更新时间没有变化,则不会从服务器抓取,返回状态码 304,如果有修改,则直接从服务器重新下载,返回状态码 200。
要做的:通过 nginx 配置实现由 nginx 处理静态资源请求,使请求不经过服务器,直接访问一个独立的服务器。
首先在linux中根目录下创建一个目录用来存放静态资源
接下来修改 nginx 的配置文件,添加配置,保存退出,刷新 nginx 配置
root 用户cd /mkdir staticcd staticmkdir templatesmkdir images使用 xftp 分别往这两个目录中加html页面和图片cd /usr/local/nginx/confvim nginx.conf在server块中添加配置location /templates/ { 路径里面包含着文件夹名root /static/; 这就是根目录下的文件夹名index index.html index.htm;}location /images/ {root /static/;autoindex on; 在请求访问时返回结果会列出当前文件夹中的内容}保存并退出cd ..cd sbin./nginx -s reload
客户端发送请求
http://192.168.126.129:刚才加动静分离配置的那个server块监听的端口/templates/a.html返回那个页面http://192.168.126.129:刚才加动静分离配置的那个server块监听的端口/images/图片名返回图片http://192.168.126.129:刚才加动静分离配置的那个server块监听的端口/images/返回的是当前访问的这个文件夹下的文件列表