2016-12-31 46 views
0

我已經openshift scalable play application我的問題,我無法強制使用HTTPS,我想只有服務的URL與/portal/api力HTTPS HAProxy的在openshift盒和啓用只對特定的網址模式

所以開始,如果我打像https://www.example.com我不希望haproxy關心它,因爲我已經有一個WordPress服務於主網站,但是如果我點擊'https://www.example.com/api',那麼HAProxy必須參與並且負載平衡器應該在自動縮放的齒輪之間工作。

我試過了HAProxy的配置很多答案包括文檔: http://cbonte.github.io/haproxy-dconv/1.4/configuration.html#4.2-redirect%20schemehttps://developers.openshift.com/faq/troubleshooting.html#_how_do_i_redirect_traffic_to_https 甚至 https://github.com/openshift/origin/blob/master/images/router/haproxy/conf/haproxy-config.template

redirect scheme https if !{ ssl_fc }是無益的。

沒有什麼是有幫助的,一旦我添加frontend它停止工作,我看不到日誌文件在我的應用程序設備中的任何地方。

我該怎麼做?

以下是我haproxy.cfg

defaults 
    mode     http 
    log      global 
    option     httplog 
    option     dontlognull 
    option http-server-close 
    #option forwardfor  except 127.0.0.0/8 
    option     redispatch 
    retries     3 
    timeout http-request 10s 
    timeout queue   1m 
    timeout connect   10s 
    timeout client   1m 
    timeout server   1m 
    timeout http-keep-alive 10s 
    timeout check   10s 
    maxconn     128 

listen stats 127.9.3.131:8080 
    mode http 
    stats enable 
    stats uri/

listen express 127.9.3.130:8080 

    cookie GEAR insert indirect nocache 
    option httpchk GET /portal 
    http-check expect rstatus 2..|3..|401 

    balance leastconn 
    server local-gear 127.9.3.129:8080 check fall 2 rise 3 inter 2000 cookie local-xxxxxxxxxx 

回答

0

我解決的問題爲特定的模式,但沒有使用https,以https的問題是,在Openshift雲V2使用HAProxy的版本太路老, https在舊版本中不受支持,但即使後來版本1.4的補丁未應用,Openshift的HAProxy版本也是:HAProxy version 1.4.22, released 2012/08/09嚴重!正如我在HAProxy文檔中看到的,最新的次要版本是1.4.27就足以解決這個問題。

因此,對於強制HTTPS,我從我的應用程序而不是HAProxy做了這一步。

總之,對於服務於特定的模式(在我的例子,我服務於/ API和/只門戶)配置文件改爲類似下面的代碼,請注意,我刪除了listen和使用backendfrontend代替:

frontend express 
    acl api path_beg -i /api 
    acl portal path_beg -i /portal 
    bind 127.9.3.130:8080 
    use_backend servers if api 
    use_backend servers if portal 
    default_backend website 
    cookie GEAR insert indirect nocache 

backend servers 
    option httpchk GET /portal 
    http-check expect rstatus 2..|3..|401 
    balance leastconn 
    server local-gear 127.9.3.130:8080 check fall 2 rise 3 inter 2000 cookie local-xxxxxxxxxx 

backend website 
    balance leastconn 
    server webserver DOMAIN_IP 

請注意以下事項:變更前

  • 始終備份舊的配置文件。
  • 使用原始配置文件中提供的本地IP地址,複製/粘貼上面的代碼肯定無法使用,也請務必用原配置文件中提供的設備ID替換xxxxxxxxxx

P.S: Openshift在線V2已被棄用,將停止接受任何新帳戶也將從明年八月,V3理應更好,但直到現在它仍然是一個「預覽」不是公共產品尚未推出。