先抄一张图,个人理解反向代理类似于请求转发的性质,请求方并不知道服务器方的信息,而是由中间的nginx服务器进行判断而后转发给服务器,在此过程中,nginx服务器相当于屏蔽了服务器的信息,因此请求方并不会了解服务器的信息,像一些大的网站,由于访问人数很多,就需要多台服务器,这时这些服务器就由一个反向代理服务器来代理,客户端发来请求,先由反向代理服务器,然后按设定分发到各个服务器,而客户端不知道是哪台服务器。这就是nginx的反向代理。
负载均衡是基于反向代理实现的,反向代理中已经介绍到,由于请求次数多,需要多台服务器支持,Nginx代理服务器对收到的请求按一定规则进行分发处理就是是负载均衡。优势是减轻服务器压力,当一台服务器宕机时,其他服务器可以继续正常支持工作。
负载:Nginx接受请求
均衡:分发请求到不同服务器
动静资源分离是将动态请求和静态请求区分访问,。
由于Tomcat 处理静态资源效率并不高,为了优化性能,提高访问效率,可以让 Tomcat 处理动态资源,让 Nginx 处理静态资源。
我的系统是Windows7版本,安装以及运行还是很简单的。官网上直接下载就可以,服务器集群是本机的tomcat。都是开源免费的。
开启Nginx有两种方法,一种是直接点击开启,一种是命名行开启。这里是点击开启,命令行开启请自行百度搜索。
安装完成后,在文件夹中双击nginx即可。
在浏览器中输入localhost:80见到如下界面就是搭建启动成功。
若启动失败可以去看Nginx的日志查看原因。
一般都是nginx默认的80端口被占用,在config目录下找到nginx.conf,修改一下配置文件即可。
主要是修改配置文件信息来达成各个功能实现。
先了解配置文件中重要参数的作用
listen:表示当前的代理服务器监听的端口,默认的是监听80端口。注意,如果我们配置了多个server,这个listen要配置不一样,不然就不能确定转到哪里去了。
server_name:主要用于配置基于名称的虚拟主机,按照一定顺序对server name进行匹配,只有有一项匹配以后就会停止搜索,所以我们在使用这个指令的时候一定要分清楚它的匹配顺序。
location:表示匹配的路径,这时配置了/表示所有请求都被匹配到这里。
root:里面配置了root这时表示当匹配这个请求的路径时,将会在这个文件夹内寻找相应的文件,这里对我们之后的静态文件伺服很有用。
index:当没有指定主页时,默认会选择这个指定的文件,它可以有多个,并按顺序来加载,如果第一个不存在,则找第二个,依此类推。
通过proxy_pass配置请求转发地址。即当访问localhost的指定端口时,请求会跳转至localhost的8080端口处。修改完Nginx的配置后需要重启Nginx。
由于tomcat服务器处理静态资源效率比较低下,所以可以将请求分离,静态资源和动态资源进行分离。将html,png等静态资源交于nginx服务器进行处理,具体配置如下:
这两种方式,第一种是通过正则表达式对请求进行后缀判断,第二种是判断请求的前缀,演示效果如下。
这里是通过权重轮询进行的配置,还有多种其他算法。
weight属性,此属性表示各服务器被访问到的权重,weight越高访问到的几率越高。
初学暂时到这里,后续内容等待添加