设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 重新 试卷 文件
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

前端开发者必备的Nginx知识(2)

发布时间:2019-03-12 12:26 所属栏目:21 来源:精致的前端
导读:如果两个页面的协议,端口(如果有指定)和域名都相同,则两个页面具有相同的源。 nginx解决跨域的原理 例如: 前端server的域名为:fe.server.com 后端服务的域名为:dev.server.com 现在我在fe.server.com对dev.s

如果两个页面的协议,端口(如果有指定)和域名都相同,则两个页面具有相同的源。

nginx解决跨域的原理

例如:

  •  前端server的域名为:fe.server.com
  •  后端服务的域名为:dev.server.com

现在我在fe.server.com对dev.server.com发起请求一定会出现跨域。

现在我们只需要启动一个nginx服务器,将server_name设置为fe.server.com,然后设置相应的location以拦截前端需要跨域的请求,最后将请求代理回dev.server.com。如下面的配置:

  1. server {  
  2.         listen       80;  
  3.         server_name  fe.server.com;  
  4.         location / {  
  5.                 proxy_pass dev.server.com;  
  6.         } 

这样可以完美绕过浏览器的同源策略:fe.server.com访问nginx的fe.server.com属于同源访问,而nginx对服务端转发的请求不会触发浏览器的同源策略。

请求过滤

根据状态码过滤

  1. error_page 500 501 502 503 504 506 /50x.html;  
  2.     location = /50x.html {  
  3.         #将跟路径改编为存放html的路径。  
  4.         root /root/static/html;  
  5.     } 

根据URL名称过滤,精准匹配URL,不匹配的URL全部重定向到主页。

  1. location / {  
  2.     rewrite  ^.*$ /index.html  redirect;  

根据请求类型过滤。

  1. if ( $request_method !~ ^(GET|POST|HEAD)$ ) {  
  2.         return 403;  
  3.     } 

配置gzip

GZIP是规定的三种标准HTTP压缩格式之一。目前绝大多数的网站都在使用 GZIP 传输 HTML、CSS、JavaScript 等资源文件。

对于文本文件,GZip 的效果非常明显,开启后传输所需流量大约会降至 1/4 ~ 1/3。

并不是每个浏览器都支持gzip的,如何知道客户端是否支持gzip呢,请求头中的Accept-Encoding来标识对压缩的支持。

启用gzip同时需要客户端和服务端的支持,如果客户端支持gzip的解析,那么只要服务端能够返回gzip的文件就可以启用gzip了,我们可以通过nginx的配置来让服务端支持gzip。下面的respone中content-encoding:gzip,指服务端开启了gzip的压缩方式。

前端开发者必备的Nginx知识 

  1. gzip                    on;  
  2.    gzip_http_version       1.1;  
  3.    gzip_comp_level         5;  
  4.    gzip_min_length         1000;  
  5.    gzip_types text/csv text/xml text/css text/plain text/javascript application/javascript application/x-javascript application/json application/xml; 

gzip

  •  开启或者关闭gzip模块
  •  默认值为 off
  •  可配置为 on / off

gzip_http_version

  •  启用 GZip 所需的 HTTP 最低版本
  •  默认值为 HTTP/1.1

这里为什么默认版本不是1.0呢?

HTTP 运行在 TCP 连接之上,自然也有着跟 TCP 一样的三次握手、慢启动等特性。

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读