• 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>
  • 相关阅读:
    理解C#中的 async await
    kube-proxy IPVS 模式的工作原理
    Kilo 使用教程
    Wireguard 全互联模式(full mesh)配置指南
    我为什么不鼓吹 WireGuard
    iTerm2 实现 ssh 自动登录,并使用 Zmodem 实现快速传输文件
    在 Docker Desktop 中启用 K8s 服务
    ABP 适用性改造
    ABP 适用性改造
    在 ASP.NET Core 应用中使用 Cookie 进行身份认证
  • 原文地址:https://www.cnblogs.com/cwshuo/p/13429890.html
Copyright © 2020-2023  润新知