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


0
0

Kubernetes生产落地全程实践

一个互联网公司落地Kubernetes全过程点点滴滴

2293 学习 · 2216 问题

查看课程