文章来源:https://www.gulixueyuan.com/my/course/332
一、动静分离概念及准备工作
1.什么是nginx动静分离
简单来说就是把动态资源和静态资源请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离。严格意义上来说是动态请求和静态请求分开,可以理解成使用Nginx处理静态页面,tomcat处理动态页面。动静分离从目前实现角度来讲大致分为两种。
一种是纯粹把静态文件独立成单独的域名,放在独立的服务器上,也是目前主流推崇的方案。
另外一种方案就是动态跟静态文件混合在一起发布,通过Nginx来分开。
通过location指定不同的后缀名实现不同的请求转发,通过expires参数设置,可以使浏览器缓存过期时间,减少跟服务器对已请求过的资源再次请求和流量。具体expire定义:是给一个资源设定过期时间,也就是无需去服务器验证,直接通过浏览器自身确认是否过期即可,所以不会产生额外的流量,当然此种方法非常适合不经常变动的资源。如果是经常变动的资源,则不建议使用此种方法来做。如果设置为3d,表示设置过期时间为3天,3天内访问这个url,发送一个请求,对比服务器对应的文件最后更新时间,如果没有变化,则不会从服务器上抓取资源,返回304,直接用缓存的.。如果有修改,则直接从服务器重新下载,返回状态码200
配置动静分离前,准备:
在linux中将静态资源放入某个可访问的目录下:
/data/image/01.jpg
/data/www/a.html
二、nginx动静分离配置
1.在nginx配置文件中去配置:配置文件位置 /usr/local/nginx/conf/nginx.conf
2.重启nginx服务器,/usr/local/nginx/sbin 下执行 ./nginx
输入地址浏览器访问:http://192.168.17.129/image/
注意:设置image目录访问的location里 用了 autoindex on,意思是暴露image目录下的文件,访问到这个目录,可以在浏览器上看到这个目录下有 文件的链接,点击就可跳转过去。
浏览器地址中输入:http://192.168.17.129/www/a.html
二、高可用集群-主备模式
1.为什么需要高可用集群?
当我们的服务器负载均衡架构中,有可能会出现应用服务器宕机,那么我们的代理服务器(负载均衡服务器)可以剔除宕机的服务器来解决问题,但是如果我们的代理无服务器宕机了呢?就是说负载均衡服务器挂掉了,那么就没办法分发请求了,整个网站就无法访问了。针对整个问题,那么就需要有方案解决---高可用集群--主备模式
2.高可用服务器集群--主备模式
代理服务器主备模式:就是分配有两台代理服务器(负载均衡服务器),一台是主MASTER服务器,一台是备用服务器BACKUP,而这两台服务器分配在两个主机上,实际上ip都不同,那么就需要两台服务器都要映射同一个虚拟ip,客户端访问虚拟ip,请求达到代理服务器上,再分发请求。但是又有一个问题是,客户端访问的是虚拟ip,那么它怎知道去找两台服务器中的哪一台?其实这个是需要keepalived软件来实现。实现之后即,主服务器和备用服务器有进行连接监听,如果主服务器宕机了,那么请求就会切换到备用服务器去进行分发。
综上:则需要3个条件
1)需要两台nginx代理服务器
2)需要用keepalived
3)需要虚拟ip进行映射
2.准备工作
两台服务器安装keepalived: cd /usr 执行yum安装 yum install keepalived -y
安装完后,执行 :rpm -q -a keepalived 查看是否安装成功
安装完成后,keepalived会在etc目录下生成配置文件,文件位置: /etc/keepalived/keepalived.conf
3.主服务器配置keepalived
注意:主服务器配置中第二个模块有:script "/usr/local/src/nginx_check.sh"
即在 /usr/local/src/目录下 需要一个 nginx_check.sh的文件,文件内容如下:
文件内容的意思是,定时检测nginx服务器是能启动,如果不能启动,则切换到备用服务器上去
另外interface 网卡名称,在服务器上命令:ifconfig 看网卡名称是哪个就写哪个,第一行的起始名称
映射的虚拟地址如下:
4.从服务器配置keepalived
与主服务器差不多,更改的配置为如下
脚本文件不变,还是放在相同的位置即可
最后需要记得启动主从服务器的nginx和keepalived
5.测试主从高可用是否ok
测试方法:直接访问虚拟ip,正常访问到资源,然后将主服务器(主负载均衡服务器)nginx和keepalived停掉,看看是否还能正常访问
重新刷新浏览器访问映射地址,依旧可以访问到资源,那么我们高可用服务器主备就成功了。
三、keepalived配置
1.keepalived配置分为3个部分:全局配置、检测脚本配置、虚拟ip配置
1)globa_defs全局配置:
smtp_server 192.168.17.129 #所在服务器ip
router_id LVS_DEVEL #所在服务器的名称 vim /etc/hosts (要对应上)
2)检测脚本配置 vrrp_script chk_http_port
script "/usr/local/src/nginx_check.sh" #检测脚本的位置
interval 2 #检测脚本执行的时间间隔
weight 2 #当前服务器的权重,
3)虚拟ip的配置 vrrp_instance VI_1
state MASTER # MASTER 和BACKUP 主服务器和备用服务器
interface ens33 # 当前服务器网卡的名称 ifconfig 第一行前一个单词即网卡名称
virtual_router_id 51 #主备机相同的标识id
priority 90 #主备机有不同的优先级,主机值较大,备份机的值较小,如主100,备90
advert_int 1 #心跳,按某个时间间隔检测一次服务器是否还活着
virtual_ipaddress #绑定虚拟地址,可以绑定多个