实现前后端分离,可以让前后端独立开发、独立部署、独立单测,双方通过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; (什么类型的页面或文档启用压缩)

最新文章

  1. Hyper-V端口映射
  2. ab压力测试
  3. 探索 OpenStack 之(16):计量模块 Ceilometer 介绍及优化
  4. Ubuntu Gnome 14.04.2 lts 折腾笔记
  5. IIS7.5 HTTP错误403.1-Forbidden 您尝试从某个目录运行CGI、ISAPI或其他可执行程序,但该目录不允许运行可执行文件
  6. 《Linux内核设计的艺术》学习笔记(五)INT 0x10中断
  7. input[type=text]点击之后无边框, 一进页面就显示光标
  8. java ScriptEngine 使用 (支持JavaScript脚本,eval()函数等)
  9. envi中多波段图层叠加layer stacking
  10. HDFS的shell操作
  11. Core Canvas–Day1
  12. mybatis重拾---部署官方demo
  13. 2.4 statistical decision theory
  14. Linux安装git和maven的详细过程
  15. J2EE Exception:WELD-001408 Unsatisfied dependencies for type [SelectModelFactory] with qualifiers [@
  16. Java笔试题:给定一个ReadOnlyClass的对象roc,能否把这个对象的age值改成30?
  17. [转] 理解CheckPoint及其在Tensorflow & Keras & Pytorch中的使用
  18. ubuntu设置分辨率
  19. git 处理
  20. 汇编语言--微机CPU的指令系统(五)(数据传送指令)

热门文章

  1. Win10下默认显示文件的扩展名
  2. Java Scanner语法
  3. arduino驱动dbs820温度
  4. zzulioj - 2618: ACM-ICPC亚洲区域赛ZZULI站
  5. keepalived 配置文件解析
  6. 配置keepalived支持nginx高可用
  7. Mercari Price Suggestion in Kaggle
  8. jquery如何遍历table,并对table里的某一个单元格进行操作
  9. TeamViewer 一款远程控制软件
  10. 不变(Immutable)模式