Beim Nginx-Lastausgleich können Sie ip_hash im Upstream festlegen. Jede Anfrage wird entsprechend dem Hash-Ergebnis der aufgerufenen IP zugewiesen und einem festen Wert zugeordnet Wenn der Back-End-Server ausfällt, geht die Sitzung verloren. Bei einer erneuten Anfrage wird wieder auf einen anderen normalen Server zugegriffen und die Sitzung bleibt bestehen. Ein Problem besteht darin, dass es zu einem Lastungleichgewicht kommen kann, da derselbe IP-Client auf einen festen Backend-Server zugreift. Das Folgende ist das Sitzungspersistenzformat von ip_hash.
Dies setzt voraus, dass die Backend-Server normal laufen.
在Nginx代理服务器(负载均衡服务器)中配置:===========================================upstream test { ip_hash; server 10.20.151.112:80; server 10.20.151.113:80;}
Wenn Sie nicht wissen, warum dieses Ergebnis vorliegt wird zurückgegeben. Wenn Sie neugierig sind, können Sie sich die spezifische Konfiguration und den Betrieb in meinem Blog zur Implementierung des Nginx-Lastausgleichs ansehen. Daher ist es nicht schwer zu erkennen, dass bei Verwendung von ip_hash eine Sitzungspersistenz erreicht wird, das heißt, der Client hat festen Zugriff auf den Back-End-Server 112 (es sei denn, dieser Server ist ausgefallen) und er kehrt nicht zu einem anderen zurück Back-End-Server, auch wenn die Seite erneut aktualisiert wird (Hinweis: In der tatsächlichen Produktion ist der vom Backend-Server an den anfordernden Client zurückgegebene Inhalt derselbe, dies dient nur zu Testzwecken).
Angenommen, der Server mit festem Zugriff ist ausgefallen
yum install -y pcre* openssl* gcc gcc-c++ make --安装编译环境 wget https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/08a395c66e42.zip --下载sticky模块 nginx -v --查看Nginx版本,因为要下载和yum安装nginx对应版本的源码包 wget http://nginx.org/download/nginx-1.18.0.tar.gz yum install -y unzip --安装解压工具 unzip 08a395c66e42.zip --解压模块包 mv nginx-goodies-nginx-sticky-module-ng-08a395c66e42/ nginx-sticky-module-ng/ --改名 tar xzvf nginx-1.18.0.tar.gz -C /usr/local/ --解压nginx的源码包 cd /usr/local/nginx-1.18.0/ nginx -V --查看yum安装nginx所有模块 ====================================================================================== ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie' --add-module=/root/nginx-sticky-module-ng ====================================================================================== make && make install Nginx -V --再次查看Nginx模块,添加成功
vim upstream.conf --在子配置文件conf.d中创建upstream.conf ===================================================================================== upstream qfedu { server 192.168.198.143; server 192.168.198.145; sticky; }
vim proxy.conf ----在子配置文件conf.d中创建proxy.conf ===================================================================================== server { listen 80; server_name localhost; location / { proxy_pass http://testweb; } }
nginx -t --检查配置文件语法是否有错 nginx -s reload --重新加载配置文件
Besuchen Sie http://10.20.151.240/
Das obige ist der detaillierte Inhalt vonAuf welche Weise implementiert Nginx die Sitzungspersistenz?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!