2016-04-12 39 views
0

我有兩個apache 2.4 web服務器和2個hybris 5.7.3 appservers。我決定在具有應用程序服務器負載平衡的兩個Web服務器中配置mod_jk 1.2.41。 Appservers只能在https上運行,你能幫我爲hybris配置mod_jk嗎?mod_jk hybris loadbalancer

感謝@Benoit快速響應。下面是配置:

httpd.conf文件

LoadModule jk_module /usr/lib64/httpd/modules/mod_jk.so 
JkWorkersFile /etc/httpd/conf/workers.properties 
# Where to put jk logs 
JkLogFile /var/log/httpd/mod_jk.log 
# Set the jk log level [debug/error/info] 
JkLogLevel debug 
# Select the log format 
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " 
# JkOptions indicate to send SSL KEY SIZE, 
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories 
# JkRequestLogFormat set the request format 
JkRequestLogFormat "%w %V %T" 

    <VirtualHost *> 
     ServerAlias www.thaitrade.dev 
     DocumentRoot /var/www 
     ServerName webserverurl 
     JkMount /* loadbalancer 
     JkMount /status/* status 
    </VirtualHost> 

更新workers.properties配置

# workers to contact, that's what you have in your httpd.conf 
    worker.list=loadbalancer,status 

    #setup node1 
    worker.worker1.port=8009 
    worker.worker1.host=hybrisserver1.ip 
    worker.worker1.type=ajp13 
    worker.worker1.lbfactor=50 

    #setup node2 
    worker.worker2.port=8009 
    worker.worker2.host=hybrisserver2.ip 
    worker.worker2.type=ajp13 
    worker.worker2.lbfactor=100 

    #setup the load-balancer 
    worker.loadbalancer.type=lb 
    worker.loadbalancer.balance_workers=worker1,worker2 
    worker.loadbalancer.sticky_session=True 
    #worker.loadbalancer.sticky_session_force=True 

    # Status worker for managing load balancer 
    worker.status.type=status 

,並添加在的jvmRoute hybrisserver1

<Engine name="Catalina" defaultHost="localhost" jvmRoute="worker1"> 

進server.xml在hybrisserver中將jvmRoute添加到server.xml 2

<Engine name="Catalina" defaultHost="localhost" jvmRoute="worker2"> 

我下面另外的配置加入到server.xml中

<Connector protocol="AJP/1.3" port="8010" proxyPort="443" scheme="https" secure="true" /> 

創造了一個新的SSL虛擬主機配置

Listen 443 https 

    <VirtualHost *:443> 
    SSLEngine on 
    JkMountCopy On 
    SSLCertificateFile /etc/httpd/conf.d/certificate.crt 
    SSLCertificateKeyFile /etc/httpd/conf.d/certificate.key 
    </VirtualHost> 

下面是mod_jk的錯誤

[Wed Apr 13 19:29:24 2016] [17689:140131769874496] [debug] jk_translate::mod_jk.c (3855): missing uri map for webservername:/hmc 
    [Wed Apr 13 19:29:24 2016] [17689:140131769874496] [debug] jk_map_to_storage::mod_jk.c (4023): missing uri map for webservername:/hmc 
    [Wed Apr 13 19:29:25 2016] [17826:140131769874496] [debug] jk_child_init::mod_jk.c (3474): Initialized mod_jk/1.2.41 
    [Wed Apr 13 19:29:27 2016] [17689:140131769874496] [debug] jk_translate::mod_jk.c (3855): missing uri map for webservername:/hac 
    [Wed Apr 13 19:29:27 2016] [17689:140131769874496] [debug] jk_map_to_storage::mod_jk.c (4023): missing uri map for webservername:/hac 

這是我的組態。 我沒有收到SSL證書。暫時我會生成自簽名證書,你可以請指導我如何將ssl證書添加到mod_jk配置中,還需要在workers.properties文件中添加新的worker和worker端口嗎?

+0

您到目前爲止嘗試過什麼? SSL認證在哪裏卸載? –

+0

對我來說似乎很好,至少對於HTTP來說,我們將在之後看到HTTPS,你有什麼錯誤?此外,您在server.xml文件中添加的conf不是必需的。 –

+0

@BenoitVanalderweireldt,但我們只有https網站,我包括一些變化。 – rakiarchana

回答

0

Hi @BenoitVanalderweireldt,刪除了proxyport,並在server.xml中添加了jvmRoute,並在ssl配置中添加了x-forwarded-proto。就是這樣,配置現在正在工作。感謝您的精彩支持

+0

你確定Apache和Tomcate使用mod_dk進行通信嗎?你能分享你的mod_jk日誌嗎? –

+0

嗨@BenoitVanalderweireldt,我發現ssl頁面無法正常工作,所以我尋找解決方案。有些站點說配置tomcat集羣和一些配置tomcat會話複製。我已經使用nfs share和jgroups配置了hybris cluster i應用程序級別。 。我懷疑是否需要配置tomcat集羣或tomcat會話複製以及ajp屬性如何? – rakiarchana

+0

除非是需求,否則不必配置Tomcat會話複製。什麼是工作,什麼不是?我通常在Apache中卸載SSL證書並添加「X-Forwarded-Proto」頭文件。 –