最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Springsession nginx反向代理集成過程

 更新時間:2020年04月22日 08:39:49   作者:知識追尋者  
這篇文章主要介紹了Springsession nginx反向代理集成過程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

一概述

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

二session概述

2.1 分布式項目的session問題

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

2.2主流的解決方案

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

三session共享實現方案

3.1環(huán)境說明

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;
​
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啟動兩個實例

3.7測試

訪問8080端口設置session


訪問8083端口獲得session

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

四nginx反向代理說明

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

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

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

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

五參考文檔

https://docs.spring.io/spring-boot/docs/2.0.0.RELEASE/reference/htmlsingle/

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Java私有構造器使用方法示例

    Java私有構造器使用方法示例

    這篇文章主要介紹了Java私有構造器的含義、關鍵字,同時通過實例向大家展示其使用方法,需要的朋友可以參考下
    2017-09-09
  • java優(yōu)化hibernate性能的幾點建議

    java優(yōu)化hibernate性能的幾點建議

    以上是在進行struts+hibernate+spring進行項目開發(fā)中,對hibernate性能優(yōu)化的幾點心得。
    2008-10-10
  • 使用SpringBoot+AOP實現可插拔式日志的示例代碼

    使用SpringBoot+AOP實現可插拔式日志的示例代碼

    這篇文章主要介紹了使用SpringBoot+AOP實現可插拔式日志的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • mybatis使用pageHelper插件進行查詢分頁

    mybatis使用pageHelper插件進行查詢分頁

    這篇文章主要介紹了mybatis使用pageHelper插件進行查詢分頁,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • MyBatisPlus自定義SQL的實現

    MyBatisPlus自定義SQL的實現

    MyBatisPlus提供了自定義SQL功能,允許開發(fā)者在Mapper接口中定義方法,并通過XML文件或注解編寫SQL語句,本文詳解了如何在MP中使用自定義SQL,感興趣的可以了解一下
    2024-09-09
  • Windows下使用Graalvm將Springboot應用編譯成exe大大提高啟動和運行效率(推薦)

    Windows下使用Graalvm將Springboot應用編譯成exe大大提高啟動和運行效率(推薦)

    這篇文章主要介紹了Windows下使用Graalvm將Springboot應用編譯成exe大大提高啟動和運行效率,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-02-02
  • 解決idea中yml文件圖標問題及自動提示失效的情況

    解決idea中yml文件圖標問題及自動提示失效的情況

    這篇文章主要介紹了解決idea中yml文件圖標問題及自動提示失效的情況,具有很好的價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • Springboot快速入門教程

    Springboot快速入門教程

    今天給大家?guī)淼氖顷P于Springboot基礎的相關知識,文章圍繞著Springboot的基礎知識及用法展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • spring boot2.0圖片上傳至本地或服務器并配置虛擬路徑的方法

    spring boot2.0圖片上傳至本地或服務器并配置虛擬路徑的方法

    最近寫了關于圖片上傳至本地文件夾或服務器,上傳路徑到數據庫,并在上傳時預覽圖片。本文通過實例代碼給大家分享spring boot2.0圖片上傳至本地或服務器并配置虛擬路徑的方法,需要的朋友參考下
    2018-12-12
  • java中雪花算法時鐘回撥問題解決

    java中雪花算法時鐘回撥問題解決

    本文介紹了分布式系統(tǒng)中使用雪花算法生成唯一ID時可能遇到的時鐘回撥問題,以及解決這個問題的幾種方法,包括等待機制、擴展位、預留時間戳或邏輯時鐘等,感興趣的可以了解一下
    2024-10-10

最新評論

宁南县| 东乌珠穆沁旗| 西乌| 政和县| 金阳县| 莲花县| 正镶白旗| 门头沟区| 南郑县| 上蔡县| 房山区| 兴国县| 肃北| 二手房| 赤壁市| 濮阳县| 博客| 丰台区| 故城县| 古蔺县| 北流市| 鄂州市| 山东省| 清远市| 长沙县| 涟水县| 阿克苏市| 伊通| 涿鹿县| 伊宁市| 临海市| 东山县| 铜鼓县| 玉屏| 塔河县| 从江县| 镇原县| 宁海县| 措勤县| 青田县| 新建县|