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

Ubuntu 19.04 installation tutorial (picture and text steps)

1. Preparation 1.1 Download and install VMware 15...

How to use Nginx to prevent IP addresses from being maliciously resolved

Purpose of using Nginx Using Alibaba Cloud ECS cl...

One question to understand multiple parameters of sort command in Linux

The sort command is very commonly used, but it al...

How to install docker on Linux system and log in to docker container through ssh

Note: I use Centos to install docker Step 1: Inst...

MySQL 8.0.16 winx64 installation and configuration method graphic tutorial

I just started learning about databases recently....

Beginners learn some HTML tags (1)

Beginners can learn HTML by understanding some HT...

Detailed introduction to deploying k8s cluster on centos7 system

Table of contents 1 Version and planning 1.1 Vers...

Teach you how to build Tencent Cloud Server (graphic tutorial)

This article was originally written by blogger We...

CSS3 gradient background compatibility issues

When we make a gradient background color, we will...

How to set the memory size of Docker tomcat

When installing Tomcat in Docker, Tomcat may over...

HTML uses marquee to achieve text scrolling left and right

Copy code The code is as follows: <BODY> //...