我在 Ubuntu 14.04 上设置了一个 HAProxy 节点版本 1.5.3。Ubuntu 服务器有 1 个网卡。网卡有一个 IPv6 地址和一个 IPv4 地址。IPv6 在端口 80 上监听传入的互联网连接。Web 服务器安装在同一个 VLAN 中具有 IPv4 地址的单独 Windows IIS 计算机上。没有防火墙。从互联网上,我可以通过端口 80 连接到 IPV6 地址,所以这很好。HAProxy 统计数据显示后端 Web 服务器正常,但我仍然无法通过 HAPRoxy 浏览 IPv4 服务器上的网站。当我打开 Web 浏览器时,IE 中出现错误:“HTTP 400 错误请求”我重新安装了 Ubuntu,但没有帮助。我为此抓狂不已。请有人帮帮我。
这是我的配置:
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin
stats timeout 30s
user haproxy
group haproxy
daemon
# Default SSL material locations
ca-base /etc/ssl/certs
crt-base /etc/ssl/private
# Default ciphers to use on SSL-enabled listening sockets.
# For more information, see ciphers(1SSL).
# ssl-default-bind-ciphers kEECDH+aRSA+AES:kRSA+AES:+AES256:RC4-SHA:!kEDH:!LOW:!EXP:!MD5:!aNULL:!eNULL
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5000
timeout client 50000
timeout server 50000
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http
frontend localnodes
bind 0::0:80
mode http
default_backend nodes
backend nodes
mode http
balance roundrobin
# option forwardfor
# http-request set-header X-Forwarded-Port %[dst_port]
# http-request add-header X-Forwarded-Proto https if { ssl_fc }
# option httpchk HEAD / HTTP/1.1\r\nHost:localhost
server web01 192.168.40.100:80 check
listen stats *:1936
stats enable
stats uri /
stats hide-version
stats auth someuser:password
答案1
尽管这是一个非常古老的话题。但也许人们最终会来到这里。
现在我正在运行 ha proxy 1.8 的一个实例。*我知道这是一个 1.5.3 实例。但可能现在大多数人都会使用 1.8 或更高版本。
为了使 ipv6 工作,请将您的前端绑定到:
bind :80 v4v6
bind :::80 v6only
您还可以使用:
bind :::80 v4v6
但在最后一种情况下,连接到它的客户端的“转发” IP 将是 ::ffff:123.123.123.123 而不是 123.123.123.123