我们有一个运行在端口8080上的服务器,每当将请求发布到服务器时,它就会将响应发回。
在同一实例上,Haproxy在443(使用SSL)上运行,当我向haproxy(IP:443)发布相同的请求时,它抛出“ 502 Bad Gateway”错误。
我可以知道是什么问题吗?
以下是Haproxy配置:
global
maxconn 2048
tune.ssl.default-dh-param 2048
daemon
defaults
mode http
option forwardfor
option http-server-close
retries 3
timeout http-request 5000s
timeout queue 3m
timeout connect 5000s
timeout client 3m
timeout server 3m
timeout http-keep-alive 5000s
timeout check 4000s
maxconn 2048
frontend www-https
bind *:443 ssl crt /etc/ssl/haproxy/app-ssl.pem
reqadd X-Forwarded-Proto:\ https
default_backend www-backend
backend www-backend
redirect scheme https if !{ ssl_fc }
server www-1 localhost:8080 check
listen stats
bind *:28080
mode http
stats enable
stats uri /haproxy?stats
答案 0 :(得分:0)
增加全球价值
tune.maxrewrite 4096
然后有效
Haproxy Config应该如下:
global
maxconn 2048
tune.ssl.default-dh-param 2048
tune.maxrewrite 4096
daemon
defaults
mode http
option forwardfor
option http-server-close
retries 3
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn 2048
frontend www-https
bind *:443 ssl crt /etc/ssl/haproxy/ede-ssl.pem
reqadd X-Forwarded-Proto:\ https
default_backend www-backend
backend www-backend
redirect scheme https if !{ ssl_fc }
server www-1 localhost:8080 check
listen stats
bind *:28080
mode http
stats enable
stats uri /haproxy?stats
请找到以下说明:
tune.bufsize 将缓冲区大小设置为此大小(以字节为单位)。较低的值允许更多 会话共存于相同数量的RAM中,更高的值允许一些 具有非常大的Cookie的应用程序。默认值为16384, 可以在构建时更改。强烈建议不要更改此设置 从默认值开始,因为非常低的值会破坏某些服务,例如 统计信息,并且值大于默认大小会增加内存使用量, 可能导致系统内存不足。至少是全局的maxconn 参数的减小应与增加该参数的因素相同。 如果HTTP请求大于(tune.bufsize-tune.maxrewrite),则haproxy将 返回HTTP 400(错误请求)错误。同样,如果HTTP响应较大 超过此大小后,haproxy将返回HTTP 502(错误网关)