我正在尝试通过 HAProxy 连接到 WebDAV 服务器。目标是将所有流量引导到一个端口 5443。我的 HAProxy 服务器已通过 SSL 绑定到端口 5443。
我尝试过几种不同的方式连接 WebDAV。我可以通过本地直接连接,也可以通过打开端口 5006 进行https://192.168.1.200:5006
外部连接。当我尝试通过 HAProxy 连接时,或出现错误,提示“连接服务器‘webdav.domain.com’时出现问题”。当我尝试通过 LAN 连接时,也会发生同样的事情。https://webdav.domain.com:5006
https://webdav.domain.com:5443
http://webdav.domain.com:5080
是否可以通过 HAProxy 挂载 WebDAV 文件系统?
下面我包含了我的 HAProxy 配置文件。
global
user haproxy
daemon
maxconn 256
log localhost user info
spread-checks 10
tune.ssl.default-dh-param 2048
defaults
mode http
stats enable
default-server inter 30s fastinter 5s
log global
option httplog
timeout connect 5s
timeout client 50s
timeout server 50s
timeout tunnel 1h
listen stats :8280
stats uri /
stats show-legends
stats refresh 10s
stats realm Haproxy\ Statistics
stats auth admin:admin
frontend http
bind :5080
option http-server-close
option forwardfor
use_backend webdav_http if { hdr_beg(Host) -i webdav. }
default_backend web
frontend https
bind :5443 ssl crt /usr/local/haproxy/var/crt/default.pem ciphers AESGCM+AES128:AES128:AESGCM+AES256:AES256:RSA+RC4+SHA:!RSA+AES:!CAMELLIA:!aECDH:!3DES:!DSS:!PSK:!SRP:!aNULL no-sslv3
option http-server-close
option forwardfor
rspirep ^Location:\ http://(.*)$ Location:\ https://\1
rspadd Strict-Transport-Security:\ max-age=31536000;\ includeSubDomains
use_backend webdav_https if { hdr_beg(Host) -i webdav. }
use_backend haproxy if { hdr_beg(Host) -i haproxy. }
default_backend web
backend web
server web localhost:80 check
backend webdav_https
server webdav_https localhost:5006 check
backend webdav_http
server webdav_http localhost:5005 check
backend haproxy
server haproxy localhost:8280 check
HAProxy 日志中的相关行
haproxy[10497]: 192.168.1.1:51676 [11/Sep/2015:18:16:56.659] https~ webdav/<NOSRV> 180/-1/-1/-1/180 503 212 - - SC-- 0/0/0/0/0 0/0 "OPTIONS / HTTP/1.1"