一、nginx會話保持清理
1、在nginx.conf中配置proxy_cache_path來設置nginx緩存路徑,並在規定的時間內清除緩存數據。
http {
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
...
}
2、使用ngx_cache_purge模塊清除指定緩存。
location / {
proxy_cache my_cache;
proxy_cache_valid 200 1h;
proxy_cache_purge /purge/;
...
}
location /purge/ {
internal;
proxy_cache_bypass $http_purge;
proxy_cache_revalidate on;
add_header Content-Type "text/plain";
return 200 "Cache Purged.";
}
3、通過重啟nginx進行緩存清理,但這種方式比較暴力,一般不推薦。
二、nginx會話保持與保存session
1、可以使用cookie命令將每個用戶的session id保存到cookie中,並將請求分配給相應的後端伺服器。
http {
upstream backend {
ip_hash;
server backend1;
server backend2;
server backend3;
}
...
}
server {
...
location / {
proxy_pass http://backend;
proxy_set_header Cookie $http_cookie;
}
...
}
upstream backend {
ip_hash;
server backend1;
server backend2;
server backend3;
sticky route=$cookie_route;
}
2、可以通過在nginx.conf中設置超時時間來解決會話過期的問題,並將過期的session數據清除。
http {
...
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
proxy_cache_key "$scheme$request_method$host$request_uri";
proxy_cache_lock on;
proxy_cache_lock_timeout 5s;
proxy_cache_use_stale error timeout invalid_header http_500;
...
}
三、nginx會話保持幾種方式
1、使用cookie方式,將session id保存在cookie中,並分配到相應的後端伺服器。
2、使用ip_hash方式,通過客戶端ip地址進行哈希計算,將請求連接到相同的後端伺服器。
3、使用sticky模塊,為每個客戶端提供唯一的token值,並將請求連接到相應的後端伺服器。
四、nginx會話保持時間
默認情況下,nginx會話保持時間為30分鐘,可以通過在nginx.conf中設置proxy_pass_header來實現會話保持時間的設置。
server {
...
location / {
proxy_pass http://backend;
proxy_pass_header Set-Cookie;
}
...
}
五、nginx會話保持配置
可以使用proxy_cache_path配置緩存路徑和緩存區大小等參數,使用proxy_cache來配置緩存方式等相關參數。
http {
...
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
proxy_cache my_cache;
proxy_cache_key "$scheme$request_method$host$request_uri";
proxy_cache_lock on;
proxy_cache_lock_timeout 5s;
proxy_cache_use_stale error timeout invalid_header http_500;
...
}
六、nginx會話保持切負載
可以通過在nginx.conf中設置upstream來實現會話保持的負載均衡,比如使用ip_hash方法。
upstream backend {
ip_hash;
server backend1;
server backend2;
server backend3;
sticky route=$cookie_route;
}
七、nginx會話保持時間怎麼配置
可以在nginx.conf中設置proxy_cache_path來配置會話保持時間,同時也可以使用proxy_cache_path清理會話的緩存。
http {
...
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
...
}
八、nginx cookie會話保持
Nginx支持cookie方式的會話保持,只需將session id保存到cookie中,並將請求連接到相應的後端伺服器。
http {
...
upstream backend {
ip_hash;
server backend1;
server backend2;
server backend3;
}
...
}
server {
...
location / {
proxy_pass http://backend;
proxy_set_header Cookie $http_cookie;
}
...
}
九、nginx負載均衡會話保持
可以使用nginx的負載均衡來實現會話保持,比如使用ip_hash方式或sticky模塊來實現,將請求連接到相應的後端伺服器。
upstream backend {
ip_hash;
server backend1;
server backend2;
server backend3;
sticky route=$cookie_route;
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/197021.html
微信掃一掃
支付寶掃一掃