Detailed explanation of two ways to implement session persistence in Nginx reverse proxy

Detailed explanation of two ways to implement session persistence in Nginx reverse proxy

1. ip_hash:

ip_hash uses a source address hash algorithm to always send requests from the same client to the same backend server unless the server is unavailable.

ip_hash syntax:

 upstream backend {
  ip_hash;
  server backend1.example.com;
  server backend2.example.com;
  server backend3.example.com down;
  server backend4.example.com;
}

ip_hash is simple and easy to use, but it has the following problems:

  • When the backend server goes down, the session will be lost;
  • Clients from the same LAN will be forwarded to the same backend server, which may cause load imbalance;
  • It is not applicable to CDN networks, and it is not applicable to situations where there is a proxy in the front end.

2. sticky_cookie_insert:

Use sticky_cookie_insert to enable session affinity, which causes requests from the same client to be delivered to the same server for a group of servers. The difference from ip_hash is that it does not judge the client based on the IP, but based on the cookie. Therefore, the situation in which the client and the front-end proxy from the same LAN in the above ip_hash cause load imbalance can be avoided.

grammar:

 upstream backend {
  server backend1.example.com;
  server backend2.example.com;
  sticky_cookie_insert srv_id expires=1h domain=toxingwang.com path=/;
}

illustrate:

  • expires: Set the time to keep the cookie in the browser
  • domain: defines the domain of the cookie
  • path: defines the path for the cookie

In addition, you can also use the backend server itself to keep the session synchronized through related mechanisms, which will be described in detail later!

The above is the full content of this article. I hope it will be helpful for everyone’s study. I also hope that everyone will support 123WORDPRESS.COM.

You may also be interested in:
  • Implementation of multi-port mapping of nginx reverse proxy
  • Nginx reverse proxy forwards port 80 requests to 8080
  • Example of using Nginx reverse proxy to go-fastdfs
  • Nginx reverse proxy configuration removes prefix
  • Detailed explanation of Nginx reverse proxy example

<<:  How to solve the problem of Chinese garbled characters when inserting table data into MySQL

>>:  A brief discussion on how to learn JS step by step

Recommend

What command is better for fuzzy searching files in Linux?

1. Introduction This article mainly explains how ...

Three ways to parse QR codes using javascript

Table of contents 1. Use JavaScript to parse the ...

Introduction and analysis of three Binlog formats in MySQL

one. Mysql Binlog format introduction Mysql binlo...

Example analysis of the page splitting principle of MySQL clustered index

This article uses an example to illustrate the pa...

20 JavaScript tips to help you improve development efficiency

Table of contents 1. Declare and initialize array...

WeChat applet uses the video player video component

This article example shares the specific code of ...

Some CSS questions you may be asked during an interview

This article is just to commemorate those CSS que...

Linux command line quick tips: How to locate a file

We all have files stored on our computers -- dire...

Detailed explanation of Angular structural directive modules and styles

Table of contents 1. Structural instructions Modu...

JS generates unique ID methods: UUID and NanoID

Table of contents 1. Why NanoID is replacing UUID...

Two ways to export csv in win10 mysql

There are two ways to export csv in win10. The fi...