0
我正在使用nginx/php-fpm
在三个应用程序服务器节点的前端中设置一个keepalived HAProxy
平衡器中的http流量。所以,我的服务链将是:nginx/php-fpm农场的HAproxy平衡器上会话的粘性
-----> HAProxy -----> nginx -----> php-FPM ----> webapp
好了,问题是,haproxy
不能看到我的后端服务器时,将其设置为使用Cookie,以确保会议的亲和力。
这里是我的haproxy.conf文件:
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
user haproxy
group haproxy
daemon
defaults
log global
mode http
option httplog
option dontlognull
contimeout 5000
clitimeout 50000
srvtimeout 50000
frontend http-in
bind *:80
default_backend servers
backend servers
option httpchk OPTIONS/
option forwardfor
option http-server-close
balance roundrobin
cookie PHPSESSID prefix indirect nocache
stats enable
stats refresh 10s
stats hide-version
stats scope .
stats uri /lb?stats
stats auth admin:admin2013
server nodo1 10.10.200.19:80 check cookie nodo1
server nodo2 10.10.200.20:80 check cookie nodo2
server nodo3 10.10.200.21:80 check cookie nodo3
任何人有为什么发生这种情况的任何想法?我已经检查过我的php.ini文件,并且session.name变量具有正确的值(在这种情况下为PHPSESSID)。
另一方面,我打算使用redis数据库作为会话存储,我在想,如果我选择这个,在haproxy中不需要使用会话亲和性,但我担心在在这种情况下,用户可能在每个请求中跳过每台服务器。