zoukankan      html  css  js  c++  java
  • 通过nginx部署前端代码实现前后端分离

    实现前后端分离,可以让前后端独立开发、独立部署、独立单测,双方通过JSON进行数据交互。

    对于前端开发人员来说,不用每次调试都需要启动或配置Java/Tomcat运行环境;对于后端开发人员来说 ,也不用在需要往JSP页面注入数据。

    通过nginx来部署前端代码,可以帮助前端实现以下基本需求:

    1、请求转发,解决请求跨域的问题

    server {

            listen       7777;

             location /{

                root   /Users/xiaoyun/git/someproject/dist;

            }

            location /api/v1{

                   proxy_set_header Host api.yourhost.com;

                    proxy_pass http://api.yourhost.com/api/v1/;

            }

            location /api/v2{

                    proxy_pass  http://api.yourhost.com/new;

            } 

        }

    以上是一段nginx配置参考:

    listen    nginx服务端口号

    location  /    设置默认根目录所访问的本地代码路径,这里还可以设置默认主页index

    proxy_pass   请求转发,可以配置多个,从上至下进行匹配

    以第一个配置为例,即所有本地以/api/v1开头的请求都会转发至对应线上服务器,

    例如  http://localhost:7777/api/v1/getConfig 则会自动转发自 http://api.yourhost.com/api/v1/getConfig

    另外,还需要注意的是,proxy_pass配置的路径如果是以/结尾,如上面的配置v1,那么此时路径为相对路径,否则为绝对路径

    例如 v2的转发配置:

    如果请求 http://localhost:7777/api/v1/user/list   则会转发自 http://api.yourhost.com/new/user/list ,不会带有原路径的 /api/v2

    2、gzip请求压缩

    网站开启gzip压缩,不仅能够节省带宽,也能够快速响应用户的访问


    http{

    gzip  on;

    gzip_proxied any;

    gzip_min_length  1024;

    gzip_buffers     4 8k;

    gzip_comp_level 3;

    gzip_types       text/plain text/css application/x-javascript application/javascript application/xml application/json;


    以下为各项配置作用:

    gzip on;      (启用 gzip 压缩功能)

        gzip_proxied any;  (nginx 做前端代理时启用该选项,表示无论后端服务器的headers头返回什么信息,都无条件启用压缩)

        gzip_min_length  1024; (最小压缩的页面,如果页面过于小,可能会越压越大,这里规定大于1K的页面才启用压缩)

        gzip_buffers     4 8k; (设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流)

        gzip_comp_level 3; (压缩级别,1压缩比最小处理速度最快,9压缩比最大但处理最慢,同时也最消耗CPU,一般设置为3就可以了)

        gzip_types       text/plain text/css application/x-javascript application/javascript application/xml application/json; (什么类型的页面或文档启用压缩)

  • 相关阅读:
    what's the python之if判断、while循环以及for循环
    what's the python之基本运算符及字符串、列表、元祖、集合、字典的内置方法
    what's the python之变量、基本数据类型
    what's the python之python介绍
    计算机基础系列之网络基础——网络协议
    计算机基础系列之何为操作系统
    计算机基础系列之计算机硬件
    EXT3_DX_ADD_ENTRY: DIRECTORY INDEX FULL!
    无shell情况下的mysql远程mof提权利用方法详解
    /bin/rm: Argument list too long解決方法
  • 原文地址:https://www.cnblogs.com/souvenir/p/5647504.html
Copyright © 2011-2022 走看看