2015-12-07 132 views
0

跟着無數的教程,仍然沒有去。我不需要haproxy來處理SSL,因爲我將https直接傳遞給nginx SSL端口,並且XMPP也具有自己的加密功能。haproxy:HTTPS和XMPP之間的共享端口

這是我的(MY.DOMAIN是有效的nginx SSL證書)。 一切都始終貫穿到XMPP。我也願意扭轉這種方法 - 是否有人有可靠的方法來檢測XMPP(使用SSL)?

global 
    chroot  /var/lib/haproxy 
    pidfile  /var/run/haproxy.pid 
    maxconn  4000 
    user  haproxy 
    group  haproxy 
    daemon 
    # turn on stats unix socket 
    stats socket /var/lib/haproxy/stats 
defaults 
    mode     http 
    log      global 
    option     httplog 
    option     dontlognull 
    option forwardfor  except 127.0.0.0/8 
    option     redispatch 
    retries     3 
    timeout http-request 120s 
    timeout queue   1m 
    timeout connect   10s 
    timeout client   1440m # Modified 
    timeout server   1440m # Modified 
    timeout http-keep-alive 10s 
    timeout check   10s 
    maxconn     3000 
frontend main 
    mode tcp 
    bind :443 
    tcp-request inspect-delay 5s 
    #Neither of these work: 
    #use_backend www-ssl  if { req.ssl_hello_type 1 } 
    use_backend www-ssl  if { req.ssl_sni -i MY.DOMAIN } 
    default_backend xmpp 
    option tcplog 
    log global 
backend xmpp 
    mode tcp 
    option tcplog 
    server app1 127.0.0.1:5222 
backend www-ssl 
    mode tcp 
    server www-ssl 127.0.0.1:1443 

回答

0

上述配置實際上工作。我在後臺有一些讓我困惑的重定向。

我並不是100%確定它一直在工作(例如,curl獲得了XMPP,我不確定curl的SSL有什麼不同),但至少對於Chrome請求HTTPS檢測正在工作。

更新:加入這前端使其成爲捲曲和瀏覽器工作:

acl content_present req_len gt 0 
tcp-request content accept if content_present