我已将haproxy配置为将路径"/ rawman"重定向到我的服务器上的端口8080.它第一次工作,但是一旦我访问默认站点,它就会停止工作.默认站点在带有mod_rewrite的apache上运行,并且它正在捕获无效请求(使用codeigniter),因此当我访问http://mysite.com/rawman?foo=bar时,我没有看到重定向的站点,而是看到了默认站点.
This is my haproxy config:
global
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
maxconn 4096
user haproxy
group haproxy
daemon
defaults
log global
mode http
option httplog
option dontlognull
retries 3
option redispatch
maxconn 2000
contimeout 5000
clitimeout 50000
srvtimeout 50000
frontend http_proxy
bind 0.0.0.0:8090
acl is_ast path_beg /rawman
use_backend ast if is_ast
default_backend mysite
backend ast
server ast 0.0.0.0:8080
backend mysite
server local 0.0.0.0:80
Run Code Online (Sandbox Code Playgroud) 我使用 haproxy 和 stunnel 处理 SSL(并使用代理模式来保留 haproxy 的原始 IP)。
我有几个 acl 测试,根据域、标头或路径重定向到不同的后端。
问题是,无论您是通过 http 还是 https 进入,这些都是相同的,但我必须在配置中复制它们。有什么办法可以减少重复吗?
这是一个示例配置:
global
user haproxy
group haproxy
#etc...
frontend http-in
bind *:80
acl files_path path_beg /files/
acl beta_host hdr_beg(host) -i beta.
use_backend files if files_path
use backend beta_host
default_backend appservers
frontend https-in
bind *:442 accept-proxy
acl files_path path_beg /files/
acl beta_host hdr_beg(host) -i beta.
use_backend files if files_path
use backend beta_host
default_backend appservers
backend appservers
balance roundrobin
option forwardfor
server appserver_1 localhost:8080 weight 1 …Run Code Online (Sandbox Code Playgroud) 我无法添加后端服务器,因为运行状况检查失败并显示日志消息
服务器mule/muleapp的运行状况检查失败,原因:Layer4连接问题,信息:"常规套接字错误(权限被拒绝)",检查持续时间:0ms,状态:0/2 DOWN.
然而,我能够远程登录到相同的IP和主机.并添加其他后端工作.我没看到什么是权限问题.我的配置非常简单
backend mule
balance roundrobin
server muleapp x.x.x.x:64006 check
Run Code Online (Sandbox Code Playgroud)
(用任意数字代替x).我在HTTP模式下运行.应该注意,连接到本地TCPMon端口也不起作用 - 但是没有运行状况检查日志语句.
我使用https://github.com/dockerfile/haproxy中的默认 HAProxy Docker 映像
不幸的是我无法让它正确地重新加载我的配置。
如果我跑
$ sudo docker exec haprox haproxy -f /etc/haproxy/haproxy.cfg -p '$(</var/run/haproxy.pid)' -st '$(</var/run/haproxy.pid)'
Run Code Online (Sandbox Code Playgroud)
它只是转储帮助文件。如果我跑
$ sudo docker exec haprox 'haproxy -f /etc/haproxy/haproxy.cfg -p $(</var/run/haproxy.pid) -st $(</var/run/haproxy.pid)'
Run Code Online (Sandbox Code Playgroud)
我明白了
2014/12/30 00:03:23 docker-exec: failed to exec: exec: "haproxy -f /etc/haproxy/haproxy.cfg -p $(</var/run/haproxy.pid) -st $(</var/run/haproxy.pid)": stat haproxy -f /etc/haproxy/haproxy.cfg -p $(</var/run/haproxy.pid) -st $(</var/run/haproxy.pid): no such file or directory
Run Code Online (Sandbox Code Playgroud)
嘘。这些都不是我想要的。我可以运行docker exec haprox service haproxy reload- 但这最终会产生几个 haproxy 进程,因此当我通过 unix 套接字连接时,我从中获得一组信息,show stat但从 http 统计页面获得一组完全不同的信息。 …
根据(详细)主题,使用Keepalived&HAProxy作为HA网络服务器loadbalancer与纯粹的keepalived解决方案相比,有什么优势吗?
当我打开我的http代理服务器的haproxy统计报告页面时,我看到如下内容:
Cum. connections: 280073
Cum. sessions : 3802
Cum. HTTP requests: 24245
Run Code Online (Sandbox Code Playgroud)
我没有在配置中使用'appsession'和任何其他与cookie相关的命令.那么'会话'在这里意味着什么?
我想haproxy通过这个顺序识别http会话:
我对吗?
我的 haproxy 日志文件中有一个奇怪的状态代码(请注意,它不是自定义的日志格式,它是 log-http 中的默认格式)
43.56.77.23:55309 [27/Oct/2015:20:14:34.749] front-http mybackend/app 349/0/-1/-1/359 **-1** 0 - - CC-- 1658/1658/21/21/0 0/0 "GET /img/button_bkg.png HTTP/1.1"
Run Code Online (Sandbox Code Playgroud)
-1 状态码是什么意思,我试图在网上找到解决方案,但不幸的是我找不到任何与我的问题相似的东西。
有谁知道这个状态码是什么意思?
是否可以设置一个动态变量来保存 HTTP 标头的内容(例如 Host/X-Forwarded-Host)并稍后在 ACL 中使用?
frontend web1
# ...
set-var s1(Host)
acl site1 hdr_end(host) -i %[s1]
# ...
use_backend %[s1] if site1
Run Code Online (Sandbox Code Playgroud) 目前,我有一个客户端(组件)与服务器(另一个组件)有一个持久的 TCP 连接,并且消息是异步交换的。我想要一个负载均衡器(最好是 HAProxy),其中连接 b/w 客户端和负载均衡器以及 b/w 负载均衡器和多个服务器作为持久的 TCP 连接。
我知道可以轻松地为 TCP 负载平衡设置 HAProxy,但我想知道它是否支持开箱即用的持久连接。如果有人指出我正确的方向,那将会有很大帮助。谢谢。
我的 Letencrypt 订单一直待处理。我在我的单节点 kubernetes 平面上使用 cert-manager。我也在使用letsencrypt。
kind: Certificate
metadata:
name: example-zone
namespace: default
spec:
secretName: example-zone-tls
renewBefore: 360h # 15d
commonName: example.zone
dnsNames:
- example.zone
issuerRef:
name: letsencrypt-prod
kind: ClusterIssuer
Run Code Online (Sandbox Code Playgroud)
输出:
pascal$ kubectl get cert,order
NAME READY SECRET AGE
certificate.certmanager.k8s.io/example-zone False example-zone-tls 79m
NAME STATE AGE
order.certmanager.k8s.io/example-zone-2971070786 pending 77m
Run Code Online (Sandbox Code Playgroud)
收到的事件:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning NoMatchingSolver 15s cert-manager Failed to create challenge for domain "example.zone": no configured challenge solvers can be used for …Run Code Online (Sandbox Code Playgroud) haproxy ×10
linux ×2
apache ×1
cert-manager ×1
docker ×1
keep-alive ×1
kubernetes ×1
lets-encrypt ×1
session ×1
stunnel ×1
tcp ×1