Nginx动静分离、高可靠、Session共享

nginx实现动静分离

1.动态数据(每个页面的数据根据不同的条件从数据库查询出来的),静态数据(每个页面长期不变的数据,例如,js,css,image)

  先在项目搭建好测试的数据(即两个测试的jar包 ,不同的页面以作测试)

2.主要代码

 server {
         listen 8080;
         server_name 118.190.158.17;
        location / {
        proxy_pass http://localhost:7000;
        }
        location ~* .(gif|jpg|jpeg|png|css|js|ico)$ {
                root    /home/web;
        }    //图片的过滤

}

3.效果(会随着动态数据的改变随着改变)

keepalived实现nginx高可靠

1.Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。类似软件还有(heartbeat,vcs,haproxy).  实现程序的自动failover,故障转移。

2.修改192.168.153.202的配置文件/etc/keepalived/keepalived.conf   记得修改完后重启配置文件 systemctl start keepalived.service

全选(高亮显示):按esc后,然后ggvG或者ggVG
全部复制:按esc后,然后ggyG
全部删除:按esc后,然后dG

global_defs {

notification_email {  #指定keepalived在发生切换时需要发送email到的对象,可以有多个

test@163.com  

}

notification_email_from keepalived@localhost #指定发件人

smtp_server 127.0.0.1   #指定smtp服务器地址

smtp_connect_timeout 30 #指定smtp连接超时时间

router_id LVS_MASTER  #运行keepalived机器的一个标识,同网段内唯一,建议使用主机名   主机名建议设置不一样

}

#vrrp_script chk_nginx {

#script "/usr/local/src/check_nginx_pid.sh"

#interval 2

#weight 2

#}

vrrp_instance VI_1 {
#指定哪个为master,哪个为backup,如果设置了nopreempt这个值不起作用,主备靠priority决
定
#state MASTER    

state BACKUP      

nopreempt  #非抢占模式    

interface ens33

virtual_router_id 51  #集群标记,同一个集群必须相同

priority 100 #优先级,高优先级竞选为master,1-255      //从机要比主机优先级低 , 才可以进行抢占

advert_int 1#检查间隔,默认1秒

authentication {#心跳间设置认证

auth_type PASS  #认证方式

auth_pass 1111   #认证密码

}

#track_script {

#chk_nginx

#}

virtual_ipaddress {

192.168.65.222 #虚拟ip    //虚拟ping通的ip   设置一样

}

}

3.设置keepalived开机自启动

systemctl  enable keepalived

4.测试

步骤一:可以通过虚ip访问目标应用

步骤二:查看虚ip所在的主机的mac地址

步骤三:测试抢占模式

主机:

备机:

redis实现session共享

步骤一:启动redis

步骤二:配置spring-session-data-redis

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

步骤三:修改springboot中的redis配置

spring.redis.port=6379
spring.redis.host=192.168.153.201

步骤四:修改页面,打包,上传,测试

sessionId:<span th:text="${#httpSession.getId()}"></span>
原文地址:https://www.cnblogs.com/cwshuo/p/13429890.html