nginx代理两台harbor,需要加上 hash $remote_addr consistent;配置
来源:6-3 Harbor高可用部署(下)
qq_慕UI6147662
2023-05-15
默认轮询会依次访问,导致无法登录,会话失败。
hash $remote_addr consistent;配置,多次访问可以访问到同一个后台服务器,能会话保持成功。
写回答
1回答
-
阿木扑
2023-05-30
感谢老铁的提醒!!刚查了下资料发现它的作用是使用客户端的IP地址作为哈希键,将请求分配到一组后端服务器中的一个。使用"consistent"选项可以提高负载均衡的效率,因为它会尽可能地将相同的IP地址映射到相同的服务器上,从而减少了缓存失效的情况。顺便贴上我的nginx.conf, 方便需要的同学做个参考
cat <<EOF > nginx.conf user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; gzip on; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; upstream harbor { hash $remote_addr consistent; server 192.168.1.54:80; server 192.168.1.55:80; } server { listen 80; server_name hub.csthink.com; location / { proxy_pass http://harbor; proxy_connect_timeout 1s; } } } EOF
00
相似问题