我在一个Web应用程序上工作,该应用程序定期对通过相同域访问的REST服务器(在生产中)进行AJAX调用。 在本地开发的过程中,我一直使用haproxy将REST调用redirect到dev服务器,以避开浏览器跨源请求限制。
haproxy.cfg
global maxconn 4096 pidfile ~/tmp/haproxy.pid defaults log global log 127.0.0.1 local0 log 127.0.0.1 local1 notice mode http timeout connect 300000 timeout client 300000 timeout server 300000 maxconn 2000 option redispatch retries 3 option httpclose option httplog option forwardfor option httpchk HEAD / HTTP/1.0 frontend dev bind *:8080 ssl crt /path/to/proxy.pem acl allow_php path_beg /app/ acl allow_rest path_beg /rest/ use_backend be_php if allow_php use_backend be_rest if allow_rest backend be_php balance roundrobin server localhost_80 localhost:80 backend be_rest balance roundrobin server dev_80 dev.example.com:80
这按预期工作:
https://localhost:8080/app/login显示与http://localhost/app/login https://localhost:8080/rest/test响应与http://dev.example.com/rest/test相同 当我尝试在HAproxy和后端(希望使用SSL)之间configurationhaproxy进行SSLconfiguration时出现问题。
根据我所阅读的所有文件,下列变化应该让我全部设定:
backend be_php balance roundrobin server localhost_443 localhost:443 ssl verify none backend be_rest balance roundrobin server dev_443 dev.example.com:443 ssl verify none
但是在进行这些更改之后, https://localhost:8080请求超时。 可以通过https://localhost/app/...和https://dev.example.com/rest/... https://localhost/app/...直接访问php后端和REST后端
任何想法,我做错了什么?
编辑:更新以反映@ Michael-sqlbot的评论