91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

實現Springsession nginx反向代理集成的方法

發布時間:2020-08-01 11:28:31 來源:億速云 閱讀:163 作者:小豬 欄目:編程語言

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

一概述

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

二session概述

2.1 分布式項目的session問題

在分布式項目中如果客戶端給服務端發送了一個請求,在nginx做反向代理的情況下,第一個請求可能到達tomcat1,此時tomcat1就會創建一個session然后將響應給客戶端;同理客戶端再次發送一個請求,然后nginx又做了一次反向代理,此時的請求可能到達tomcat2,此時tomcat2會建立一個session響應給客戶端;那么問題就產生了,同一個客戶端發了2個請求,結果造成兩次會話的數據不一致。

實現Springsession nginx反向代理集成的方法

2.2主流的解決方案

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

實現Springsession nginx反向代理集成的方法

三session共享實現方案

3.1環境說明

1jdk1.8

2redis5.05

3idea工具

4maven構建

5springboot 2.1.1

3.2pom.xml

<parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>2.1.1.RELEASE</version>
  <relativePath/>
</parent>
<dependencies>
  <!-- redis啟動器-->
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
  </dependency>
  <!-- web啟動器-->
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
  </dependency>
  <!-- spring session啟動器 -->
  <dependency>
    <groupId>org.springframework.session</groupId>
    <artifactId>spring-session-data-redis</artifactId>
  </dependency>
</dependencies>

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("設置session");
    return "set spring session success";
  }
  @GetMapping("get/spring/session")
  public String getSpringSession(HttpSession httpSession){
    httpSession.setAttribute("user","youku1327");
    System.out.println("響應session");
    return httpSession.getAttribute("user").toString();
  }
}

3.5啟動類

package com.youku1327.spring.session;
&#8203;
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 {
&#8203;
  public static void main(String[] args) {
    SpringApplication.run(SpringSessionApplication.class,args);
  }
}

3.6啟動兩個實例

實現Springsession nginx反向代理集成的方法

3.7測試

訪問8080端口設置session

實現Springsession nginx反向代理集成的方法

訪問8083端口獲得session

實現Springsession nginx反向代理集成的方法

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

實現Springsession nginx反向代理集成的方法

四nginx反向代理說明

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

 server {
    listen    端口;
    server_name 發布項目的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 轉發的ip地址;
            proxy_connect_timeout 600;
            proxy_read_timeout 600;
    }
  }

配置2個server 分別 監聽 8080 8083 端口 配置轉發ip ,好后退出保存 nginx -s reload

我們就可以不同的訪問轉發ip實現nginx的反向代理

看完上述內容,是不是對實現Springsession nginx反向代理集成的方法有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

朔州市| 甘德县| 鹤山市| 泰来县| 垫江县| 肇庆市| 松江区| 革吉县| 宁德市| 巴彦淖尔市| 贵州省| 翼城县| 淄博市| 留坝县| 涞源县| 汾阳市| 海伦市| 绥化市| 齐齐哈尔市| 宁阳县| 卫辉市| 扬中市| 普陀区| 油尖旺区| 博乐市| 辽源市| 巴彦县| 定襄县| 巴林右旗| 搜索| 祁东县| 盐山县| 河池市| 焉耆| 台南市| 加查县| 赣州市| 洛川县| 义乌市| 自贡市| 牟定县|