1.简介
Nginx是一款轻量级的Web服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网大厂项目中广泛应用。
2. Nginx的核心功能:
- 反向代理
- 负载均衡
- 动静分离
2.1Nginx反向代理
正向代理(forward proxy):是一个位于客户端和目标服务器之间的服务器(代理服务器),为了从目标服务器取得内容,客户端向代理服务器发送一个请求并指定目标,然后代理服务器向目标服务器转交请求并将获得的内容返回给客户端。
反向代理(reverse proxy):是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
测试Nginx反向代理
(1)准备一个打包好的jar包
(2)修改Nginx的配置文件代理项目
我的配置文件在 /usr/nginx/conf/nginx.config
(3)直接进入浏览器访问192.168.153.128:88即可
2.2负载均衡
上面的反向代理中,我们通过proxy_pass来指定Tomcat的地址,很显然我们只能指定一台Tomcat地址,那么我们如果想指定多台来达到负载均衡呢?
第一,通过upstream来定义一组Tomcat,并指定负载策略(IPHASH、加权论调、最少连接),健康检查策略(Nginx可以监控这一组Tomcat的状态)等。
第二,将proxy_pass替换成upstream指定的值即可。
2.3动静分离
我们可以在Nginx下把静态资源、日志文件归属到不同域名下(也即是目录),这样方便管理维护。
在Web开发中,通常来说,动态资源其实就是指那些后台资源,而静态资源就是指HTML,JavaScript,CSS,img等文件。
动静分离,说白了,就是将网站静态资源(HTML,JavaScript,CSS,img等文件)与后台应用分开部署,提高用户访问静态代码的速度,降低对后台应用服务器的请求。后台应用服务器只负责动态数据请求。
优势:分担负载,减轻web服务器的压力,适用于大负载。静态资源放置cdn,同时还可以通过配置缓存到客户浏览器中,这样极大减轻web服务器的压力。
配置Nginx动静分离
还是找到nginx.conf
在nginx安装目录下放置static目录以及内容
在通过nginx访问 ---就可以显示静态资源了
3.Nginx高可用
Keepalived+Nginx实现高可用
Keepalived是一个高可用解决方案,主要是用来防止服务器单点发生故障,可以通过和Nginx配合来实现Web服务的高可用。(其实,Keepalived不仅仅可以和Nginx配合,还可以和很多其他服务配合)
第一:请求不要直接打到Nginx上,应该先通过Keepalived(这就是所谓虚拟IP,VIP)
第二:Keepalived应该能监控Nginx的生命状态(提供一个用户自定义的脚本,定期检查Nginx进程状态,进行权重变化,,从而实现Nginx故障切换)
实现:
yum install -y keepalived #安装keepalived
默认安装路径: /etc/keepalived
修改keepalived.cnf的配置内容
还需要在配置一台虚拟机 同样操作 角色标记不能重复
启动keepalived
systemctl start keepalived.service
最后通过Nginx访问测试即可