目前我在我的服务器上使用带有 HAProxy 包的 pfSense,因为我可以通过 GUI 轻松配置它。
我将 HAProxy 配置为对应于本指南的反向代理:https ://blog.devita.co/pfsense-to-proxy-traffic-for-websites-using-pfsense/
SSL 卸载就像一个魅力。我遇到的问题是,当我在同一个内部 IP 上拥有多个服务(开放端口)时,它似乎无法正常工作。
例子:
- 我使用端口 8000 (10.100.10.101:8000) 为 Service1 配置 service1.domain.com,它可以完美运行。
- 现在我需要同一台机器上的另一个端口(例如 10.100.10.101:8082)和另一个服务。如果我配置另一个指向相同 IP 但使用不同端口的后端,即使我访问 service1.domain.com,我也只能访问第二个服务 (service2.domain.com)。
我的用例是我正在尝试设置 Seafile,它为 Web GUI 使用端口 8000,为文件服务器使用端口 8082。现在我可以访问 Web GUI,但无法上传、下载或共享文件。
我的配置:
# 自动生成,请勿手动编辑。 # 生成于:2018-09-29 19:24 全球的 最大康1000 stats socket /tmp/haproxy.socket 级别管理员 80元 nbproc 1 15m后硬停 chroot /tmp/haproxy_chroot 守护进程 tune.ssl.default-dh-param 8192 服务器状态文件 /tmp/haproxy_server_state ssl-default-bind-ciphers TLS13-AES-256-GCM-SHA384:TLS13-AES-128-GCM-SHA256:TLS13-CHACHA20-POLY1305-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256 -GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE -RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256 ssl-default-bind-options no-sslv3 no-tlsv10 no-tlsv11 no-tls-tickets ssl-default-server-ciphers TLS13-AES-256-GCM-SHA384:TLS13-AES-128-GCM-SHA256:TLS13-CHACHA20-POLY1305-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256 -GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE -RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256 ssl-default-server-options no-sslv3 no-tlsv10 no-tlsv11 no-tls-tickets 听 HAProxyLocalStats 绑定 127.0.0.1:2200 名称 localstats 模式http 统计启用 统计管理员如果为真 统计显示传奇 统计 uri /haproxy/haproxy_stats.php?haproxystats=1 超时客户端 5000 超时连接 5000 超时服务器 5000 前端共享前端合并 绑定 XXXX:443 名称 XXXX:443 ssl crt-list /var/etc/haproxy/shared-frontend.crt_list 模式http 登录全局 选项 http-keep-alive 期权转发 acl https ssl_fc http-request set-header X-Forwarded-Proto http if !https http-request set-header X-Forwarded-Proto https if https 超时客户端 30000 http-response set-header Strict-Transport-Security max-age=15768000 acl aclcrt_shared-frontend var(txn.txnhost) -m reg -i ^([^\.]*)\.domain\.com(:([0-9]){1,5})?$ acl ACL1 var(txn.txnhost) -m str -i test.domain.com acl ACL2 var(txn.txnhost) -m str -i service1.domain.com acl ACL3 var(txn.txnhost) -m str -i service2.domain.com http-request set-var(txn.txnhost) hdr(host) default_backend test.domain.com_ipv4 default_backend service1.domain.com_ipvANY default_backend service2.domain.com_ipvANY 前端 http-to-https 绑定 XXXX:80 名称 XXXX:80 模式http 登录全局 选项 http-keep-alive 超时客户端 30000 http-request 重定向方案 https 后端 test.domain.com_ipv4 模式http 编号 10100 登录全局 超时连接 30000 超时服务器 30000 重试 3 源 ipv4@ 使用rc clientip 选项 httpchk GET / 服务器 testvm-server01 10.100.10.101:54080 id 10101 检查 inter 1000 后端 service1.domain.com_ipvANY 模式http 编号 102 登录全局 超时连接 30000 超时服务器 30000 重试 3 选项 httpchk GET / 服务器 seafile-vm-01 10.100.10.103:8000 id 101 检查 inter 1000 后端 service2.domain.com_ipvANY 模式http 编号 104 登录全局 超时连接 30000 超时服务器 30000 重试 3 选项 httpchk GET / 服务器 seafile-vm-02 10.100.10.103:8082 id 103 检查 inter 1000
如果有人能指出我正确的方向,我真的很高兴,提前谢谢你,如果你需要更多信息,请告诉我。
此致,
生物眼