真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

實(shí)現(xiàn)Springsessionnginx反向代理集成的方法

這篇文章主要講解了實(shí)現(xiàn)Springsession nginx反向代理集成的方法,內(nèi)容清晰明了,對此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會有幫助。

專業(yè)從事成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作,高端網(wǎng)站制作設(shè)計(jì),微信平臺小程序開發(fā),網(wǎng)站推廣的成都做網(wǎng)站的公司。優(yōu)秀技術(shù)團(tuán)隊(duì)竭力真誠服務(wù),采用HTML5+CSS3前端渲染技術(shù),自適應(yīng)網(wǎng)站建設(shè),讓網(wǎng)站在手機(jī)、平板、PC、微信下都能呈現(xiàn)。建站過程建立專項(xiàng)小組,與您實(shí)時在線互動,隨時提供解決方案,暢聊想法和感受。

一概述

springsession 配置,如果是sevlet的web應(yīng)用后會自動集成 jdbc ,redis,Hazelcast,MongoDB

二session概述

2.1 分布式項(xiàng)目的session問題

在分布式項(xiàng)目中如果客戶端給服務(wù)端發(fā)送了一個請求,在nginx做反向代理的情況下,第一個請求可能到達(dá)tomcat1,此時tomcat1就會創(chuàng)建一個session然后將響應(yīng)給客戶端;同理客戶端再次發(fā)送一個請求,然后nginx又做了一次反向代理,此時的請求可能到達(dá)tomcat2,此時tomcat2會建立一個session響應(yīng)給客戶端;那么問題就產(chǎn)生了,同一個客戶端發(fā)了2個請求,結(jié)果造成兩次會話的數(shù)據(jù)不一致。

實(shí)現(xiàn)Springsession nginx反向代理集成的方法

2.2主流的解決方案

針對2.1分布式session共享問題,當(dāng)代主流的解決方案是使用redis做session以達(dá)到session共享的目的。請求達(dá)到不同的tomcat之后都會往同一個redis中寫數(shù)據(jù), 當(dāng)tomcat響應(yīng)數(shù)據(jù)的時候就會往同一個redis中讀數(shù)據(jù) 以前我們需要手動的將tomcat獲得的session數(shù)據(jù)存到redis,響應(yīng)的時候再去redis中取數(shù)據(jù)。現(xiàn)在springsession會自動幫我們的數(shù)據(jù)從tomcat中同步到redis,或者自動的從redis中取數(shù)據(jù)。

實(shí)現(xiàn)Springsession nginx反向代理集成的方法

三session共享實(shí)現(xiàn)方案

3.1環(huán)境說明

1jdk1.8

2redis5.05

3idea工具

4maven構(gòu)建

5springboot 2.1.1

3.2pom.xml


  org.springframework.boot
  spring-boot-starter-parent
  2.1.1.RELEASE
  


  
  
    org.springframework.boot
    spring-boot-starter-data-redis
  
  
  
    org.springframework.boot
    spring-boot-starter-web
  
  
  
    org.springframework.session
    spring-session-data-redis
  

3.3application.yml

spring:
 redis:
  host: 192.168.0.104
  port: 6379
  database: 0
 session:
  store-type: redis
  redis:
   cleanup-cron: 0 1 * * * *

3.4controller

package com.youku1327.spring.session.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpSession;

/**
 * @Author lsc
 * @Description //spring session
 * @Date 2019/9/22 14:01
 * @Version 1.0
 */
@RestController
public class SpringSessionController {

  @GetMapping("set/spring/session")
  public String setSpringSession(HttpSession httpSession){
    httpSession.setAttribute("user","youku1327");
    System.out.println("設(shè)置session");
    return "set spring session success";
  }
  @GetMapping("get/spring/session")
  public String getSpringSession(HttpSession httpSession){
    httpSession.setAttribute("user","youku1327");
    System.out.println("響應(yīng)session");
    return httpSession.getAttribute("user").toString();
  }
}

3.5啟動類

package com.youku1327.spring.session;
​
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
 * @Author lsc
 * @Description //
 * @Date 2019/9/22 13:29
 * @Version 1.0
 */
@SpringBootApplication
public class SpringSessionApplication {
​
  public static void main(String[] args) {
    SpringApplication.run(SpringSessionApplication.class,args);
  }
}

3.6啟動兩個實(shí)例

實(shí)現(xiàn)Springsession nginx反向代理集成的方法

3.7測試

訪問8080端口設(shè)置session

實(shí)現(xiàn)Springsession nginx反向代理集成的方法

訪問8083端口獲得session

實(shí)現(xiàn)Springsession nginx反向代理集成的方法

3.8默認(rèn)是spring:session做為key前綴有需要改變可以在yml中配置

實(shí)現(xiàn)Springsession nginx反向代理集成的方法

四nginx反向代理說明

在nginx安裝目錄的conf文件夾的nginx.conf

 server {
    listen    端口;
    server_name 發(fā)布項(xiàng)目的ip地址;

    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Server $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    location / {
            proxy_pass 轉(zhuǎn)發(fā)的ip地址;
            proxy_connect_timeout 600;
            proxy_read_timeout 600;
    }
  }

配置2個server 分別 監(jiān)聽 8080 8083 端口 配置轉(zhuǎn)發(fā)ip ,好后退出保存 nginx -s reload

我們就可以不同的訪問轉(zhuǎn)發(fā)ip實(shí)現(xiàn)nginx的反向代理

看完上述內(nèi)容,是不是對實(shí)現(xiàn)Springsession nginx反向代理集成的方法有進(jìn)一步的了解,如果還想學(xué)習(xí)更多內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


名稱欄目:實(shí)現(xiàn)Springsessionnginx反向代理集成的方法
分享地址:http://weahome.cn/article/pcpcds.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部