一、谈谈“渲染”

相信好多人都挺听过“渲染”这个词,但不清楚它是什么意思?前端开发以为这是后端的活儿,后端开发以为是前端的事儿,推着推着就不了了之。其实渲染很简单,不说概念,直接举例:

1、 后端渲染:以JSP为例,可以分成三步

a、编写标签或Java代码(可以称之为模板)

b、在JSP编译阶段被转换成Servlet编译为Servlet Class

c、执行编译后的代码,将响应(模板执行结果)返回给页面

优势:减少前端工作,前端只需要设计纯页面,其他的都由后端来做;

缺点:依赖于服务器端,增大服务器压力,前后端职责分工不明确;

应用场景:在页面不太多、渲染压力不大、服务器端能够承受范围内可以使用后端渲染。

2、 前端渲染:以基于js的模板引擎为例

a、编写模板代码

b、通过模板引擎将模板转化为脚本语言,拼接在JS中(第一次拼接,以后使用缓存)

c、页面加载执行JS

优势:减少服务器压力,前后端职责可以很好地分开,后端只做Json数据接口,前端进行渲染;

缺点:前端渲染依赖于客户端,增大的前端压力,需要代理服务器、末班渲染引擎的支持;

应用场景:在前端页面较多,前端开发人员能力较强,需要前后端分离的场景可以使用前端渲染(前端渲染是趋势)。

二、谈谈nginx

1、谈谈为什么会用到nginx?

首先明确一件事,浏览器可以发出请求吗?可以!那我们为什么要用到服务器呢?因为我们的前端如果不依赖服务器,页面就只能访问本地资源而不能访问服务器上的资源,而我们的后台一定是写在服务器上的。所以举个例子,我们在使用Tomcat服务器时,就必须把前端资源架在Tomcat上,才能访问后台的servlet。如下图所示:

所以当我们希望前后端分离时,前端的资源就不能放在Tomcat上面,那如何获得Tomcat的资源的?这就用到了nginx,如下图所示:

2、谈谈nginx的反向代理

有反向代理必有正向代理,先谈谈正向代理:一般默认的代理都是正向代理,用户访问不了一个资源,然后通过代理服务器去访问这个资源,将响应带回给用户。关键在于用户知道自己访问的是其他服务器的资源,代理服务器不会掩饰URL。

而反向代理是,代理服务器也是在中间层,但是用户不知道自己访问的资源是其他服务器的资源,代理服务器会掩饰URL。

3、谈谈如何使用nginx反向代理tomcat

(1)首先打开nginx,两种方式,一种是直接点击ngnix.exe,一种是使用命令行,cd到nginx目录下,start nginx,无报错即启动成功

(2)启动成功后,如何验证,因为ngnix.conf核心配置文件默认配置监听80端口,所以浏览器打开localhost,看到如下显示:

(3)下一步就是配置反向代理Tomcat,打开conf目录下的nginx.conf文件,主要看35行左右开始的代码,下面是我修改过的代码:

主要修改lacation属性,使所有的请求都被转发到http://localhost:8080的Tomcat服务器下处理:

listen:是监听的端口,即用户访问nginx服务的端口

server_name:服务名,经过测试并不会影响到什么

location:定义资源类型与服务器中资源地址url的映射关系,可在/后面定义资源类型,可设置多个location

其中proxy_pass代表要反向代理的服务器资源url,只要资源类型匹配,在这个url下的子路径资源都可以访问到,

其中root代表本地的资源路径,同样只要资源类型匹配,这个路径下的子目录资源都可以被访问到,

一个location中只能配置一个root或proxy_pass。

(4)修改后ngnix.conf文件后,使用nginx -s reload指令,重启ngnix,如果没有报错即重启成功

(5)发出请求,获得Json,url显示依然是80端口的资源,即我们说的反向代理的特点,掩饰url,效果如下图所示:

事实上,nginx是将请求转发到Tomcat服务器,是8080端口下的资源,如下图所示:

(6)如果不光有Tomcat服务器的资源,那么就需要定义多个location,比如,jsp资源请求就转发到Tomcat服务器下,PHP、html、js、css等资源资源可以转到Apache服务器目录下,如下图配置示例:

location ~ .jsp$ {

proxy_pass http://localhost:8080;

} location ~ .(html|js|css|png|gif)$ {

root D:/software/developerTools/server/apache-tomcat-7.0.8/webapps/ROOT;

}

Nginx学习总结(10)——Nginx前后端分离将多个请求转发到多个Tomcat,负载均衡反向代理相关推荐

  1. nginx安装、nginx前端配置、后端配置、前后端分离配置、https支持(ssl配置)、负载均衡配置、nginx location详解

    nginx配置 一.nginx安装 二.nginx配置 仅前端配置 仅后端配置 前后分离配置(1) 前后分离配置(2) 前后不分离配置 https/ssl配置 负载均衡配置 数据压缩配置 三.完整ng ...

  2. Linux中 Nginx+uwsgi部署flask项目 Nginx负载均衡 反向代理

    Nginx是一款自由的.开源的.高性能HTTP服务器和反向代理服务器. 轻量级,同样起web服务,比 apache占用更少的内存及资源 抗并发, nginx处理请求是异步非阻塞的,而 apache则是 ...

  3. 前端网页发布到nginx_通过nginx部署前端代码实现前后端分离

    实现前后端分离,可以让前后端独立开发.独立部署.独立单测,双方通过JSON进行数据交互. 对于前端开发人员来说,不用每次调试都需要启动或配置Java/Tomcat运行环境:对于后端开发人员来说 ,也不 ...

  4. Shiro学习笔记-----小组开发前后端分离项目---登陆认证盐值加密

    当下我正在参与的学校前后端分离的实习项目,有了登录系统的需求,于是我在了解到Shiro是当下主流的安全框 架后,毅然决然开启了学习Shiro的旅程 首先来谈谈什么是Shiro,Apache Shiro ...

  5. springBoot 解决前后端分离项目中跨越请求,同源策略

    今天在做项目的过程,采用前后端分离技术的时遇到采用ajax请求无法访问后台接口,按F12,查看浏览器运行状态时,报如下错误 为了解决浏览的同源策略,就必须了解什么是同源策略. 1.什么是同源策略 同源 ...

  6. 架构之Nginx(负载均衡/反向代理)

    Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器 ,也是一个 IMAP/POP3/SMTP 代理 服务器 . Nginx 是由 Igor Sys ...

  7. Nginx安装/负载均衡/反向代理配置与调优

    [Nginx安装] Linux下直接使用包管理安装 sudo apt-get install nginx 使用whereis命令查看安装位置 whereis nginx #sbin下代表nginx可执 ...

  8. 负载均衡反向代理 动静分离

    #!/bin/bash IP=192.168.186.77 WG=192.168.186.2 YM=255.255.255.0 DIR=/etc/sysconfig/network-scripts W ...

  9. 前后端分离时ajax发送请求时后端能接送,但是前端的response为空时

    困扰了一天的问题,使用ajax向后端发送请求,后端成功接收并且处理,但是返回前端时在前端调用response时发现后端返回的数据为空 . success:function (response) {if ...

最新文章

  1. 生命游戏 c语言,c++生命游戏源码
  2. 《EMCAScript6入门》读书笔记——24.编程风格
  3. Ubuntu13.10下编译安装opencv2.4.9
  4. 使用PIE/PIF值判断DVD刻录机的刻录品质
  5. loadrunner11完整卸载
  6. 2008年具有高校自主选拔录取资格的考生名单 - 江苏版
  7. 2.请求安全-- MD5的必要性以及实际应用场景
  8. [SQL] 常用查询脚本
  9. 对排名前3000位博主进行数据分析
  10. 简单的NLPIR分词 JAVA 实现
  11. 我的世界有宠物系统服务器,我的世界:如果Minecraft加入战斗宠物系统,推荐5大最强生物!...
  12. 两个平面的位置关系和判定方程组解_2018年高考数学总复习第九章平面解析几何第2讲两直线的位置关系学案!...
  13. 全国大学生“高教杯“成图大赛:轴类零件的快速建模
  14. 《伟大的小细节:互联网产品设计中的微创新思维》——3.4 身份特征与使用习惯因素...
  15. 2019年涨工资指南:为什么要学AI、AI薪资水平和就业前景分析
  16. PS网页设计教程XI——在PS中创建柔和的绿色环保的网页布局
  17. Ucore与xv6文件系统分析
  18. 跟着bob学win10 ump 学习笔记: lesson57 Weather
  19. 数据库访问技术的总结 一
  20. IP获取方法一:网页JS获取当前地理位置(省市区)

热门文章

  1. hashcode是什么意思_面试官:说一下HashMap原理,为什么会产生死循环
  2. python 字符串数组_python用法笔记(数组(list、touple、dict)、字符串)
  3. pytest allure测试报告_用Pytest+Allure生成漂亮的HTML图形化测试报告
  4. 限定位宽比较大小_自己之前买电脑整理的一些电脑知识,比较粗糙,仅供参考。...
  5. 稳定服务器头像,WordPress 修复 Gravatar 头像稳定服务器地址
  6. python unique函数_《Python编程从入门到实践》json数据可视化练习详解
  7. 算法 c语言_C语言中10个经典的算法,学会它,利用它
  8. mysql utf8转gbk cmd_utf8转成gbk
  9. slurm安装配置_安装Slurm_鲲鹏高性能计算解决方案_安装指南_Slurm 18.08.7 安装指南_Slurm的安装配置_华为云...
  10. python3 copy_Python3 深浅拷贝