我有2个虚拟主机
app.example.com:80在IP地址xxx.xxx.xxx.xxx
app2.example.com:80在IP地址yyy.yyy.yyy.yyy
我的haproxy ipaddress是sss.sss.sss.sss
这是haproxy配置:
global
log 127.0.0.1 local0 notice
maxconn 2000
user haproxy
group haproxy
defaults
log global
mode http
option httplog
option dontlognull
retries 3
option redispatch
timeout connect 5000
timeout client 10000
timeout server 10000
frontend www-http
mode http
bind *:80
default_backend appname
stats enable
stats uri /haproxy?stats
stats auth admin:password
stats show-node
backend appname
balance roundrobin
option httpclose
option forwardfor
server lamp1 app.example.com:80 check
server lamp2 app2.example.com:80 check
尝试使用haproxy ipaddress进行访问时,Web浏览器会返回xampp信息中心而不是后端内容。
如何让haproxy重定向到后端内容?
答案 0 :(得分:2)
我相信功能现在可用于1.6, http://blog.haproxy.com/2015/10/14/whats-new-in-haproxy-1-6/
您配置的内容只是将请求与实例之间的请求进行权衡:
server lamp1 app.example.com:80 check
server lamp2 app2.example.com:80 check
如果他们是2个单独的应用程序,请尝试:
frontend www-http
mode http
bind sss.sss.sss.sss:80
stats enable
stats uri /haproxy?stats
stats auth admin:password
stats show-node
acl app01 hdr(Host) -i app.example.com
acl app02 hdr(Host) -i app02.example.com
use_backend app01 if app01
use_backend app02 if app02
backend app01
balance roundrobin
option httpclose
option forwardfor
server lamp1 xxx.xxx.xxx.xxx:80 check
backend app02
balance roundrobin
option httpclose
option forwardfor
server lamp2 yyy.yyy.yyy.yyy:80 check
如果您现在使用app.example.com点击您的haproxy,您将转到lamp1,app2.example.com将带您到lamp2
如果你想将所有内容转发到ip到后端并且不关心额外的匹配和映射,那么id使用直接监听,而不是前端:
listen SOMENAME sss.sss.sss.sss:80
balance leastconn
mode http
server lamp1 xxx.xxx.xxx.xxx:80
server lamp2 yyy.yyy.yyy.yyy:80
答案 1 :(得分:0)
如果我没记错的话,“default_backend”希望将“后端”值作为属性,而不是“监听”。
https://cbonte.github.io/haproxy-dconv/configuration-1.5.html#4.2-default_backend
所以我建议改为
backend appname
balance roundrobin
option httpclose
option forwardfor
server lamp1 app.example.com:80 check
server lamp2 app2.example.com:80 check