2014-11-05 52 views
0

我已經在Ubuntu 12.04(#apt-get install -y -q apache2)上安裝了apache 2.2。 我有兩個部署了運行javascript的war應用程序的tomcat實例。如何配置apache 2.2作爲負載平衡器來管理運行javascript應用程序的tomcat實例

The apacheLB IP is: http://public_ip:80/app 
The tomcat applications private url are: http://177.86.0.115:80/app and http://177.86.0.116:80/app 

我已啓用以下模塊如下:

pushd /etc/apache2/mods-enabled 
sudo ln -f -s ../mods-available/proxy_balancer.conf proxy_balancer.conf 
sudo ln -f -s ../mods-available/proxy_balancer.load proxy_balancer.load 
sudo ln -f -s ../mods-available/proxy.conf proxy.conf 
sudo ln -f -s ../mods-available/proxy.load proxy.load 
sudo ln -f -s ../mods-available/proxy_http.load 
popd 

我有配置proxy_balancer.conf如下:

<IfModule mod_proxy_balancer.c>  
<IfModule mod_status.c> 

<Proxy balancer://mycluster>  
BalancerMember http://177.86.0.115:80/app  
BalancerMember http://177.86.0.116:80/app  
</Proxy> 

ProxyPass /balancer-manager !  
ProxyPass /app balancer://mycluster 

ProxyPassReverse /app balancer://mycluster  
ProxyPassMatch ^/(.*)$ balancer://mycluster/$1 

<Location /balancer-manager>  
     SetHandler balancer-manager  
     Allow from all  
</Location>  
</IfModule>  
</IfModule> 

如果我通過瀏覽器連接到負載平衡器URL我無法查看圖像。 在Chrome的開發者工具,我認爲:

login;jsessionid=18D12D6A45D6BE7379FDDABD1A445A2B:10 Uncaught SyntaxError: Unexpected token < 
login;jsessionid=133E61276DABF0CD328F9555FA941AD2:10 Uncaught SyntaxError: Unexpected token < 
login;jsessionid=28F0F9AAE7A6A0931093B6B344D17266:10 Uncaught SyntaxError: Unexpected token < 
login;jsessionid=679B3A919757EB4C9C8C82587ABD39EA:10 Uncaught SyntaxError: Unexpected token < 
jquery.validate.js:1243 Uncaught ReferenceError: jQuery is not defined 
login;jsessionid=2BB3E3044205EB49C5745D0B2FA16F68:10 Uncaught SyntaxError: Unexpected token < 
login;jsessionid=25502F3D232720E088AD939D3543B5D2:87 Uncaught ReferenceError: $ is not defined 
login;jsessionid=25502F3D232720E088AD939D3543B5D2:196 Uncaught ReferenceError: $ is not defined 

你能幫助我嗎? 謝謝, G.

+0

換句話說,你的資產沒有正確路由。其他一切工作,只是不是靜態資產? – 2014-11-05 16:30:48

+0

是的,它的確如此。例如,我可以通過負載平衡器登錄到應用程序,但是我看到該菜單被列出而不是顯示爲圖像。 – Joe 2014-11-06 07:31:55

回答

0

我已經做了這些步驟:

  1. 連接在平衡情況下運行的應用程序URL:ES。 http://public_IP/app/login

  2. 在Chrome瀏覽器上單擊F12並單擊網絡:我可以看到應用程序在請求標頭中生成了Cookie:JSESSIONID = xxxxxxxxxx。

  3. 連接到負載均衡器URL:es。 http://public_ip_load_balancer/app/login

  4. 在Chrome瀏覽器上點擊F12,然後點擊網絡:我可以看到該網頁沒有JSESSIONID標頭,而我可以看到JSESSIONID附加在所有網址資源處。

換句話說,而分析負載平衡器網頁的SORCE代碼,我看到:

<title>Login</title> 
<link rel="icon" href="/app/resources/img/img.png;jsessionid=71CFE3AB5E3BAEF5187AE123E79C052D" type="image/x-icon"> 
<link rel="shortcut icon" sizes="196x196" href="/app/resources/img/img.png;jsessionid=71CFE3AB5E3BAEF5187AE123E79C052D"> 
<link rel="stylesheet" href="/app/resources/css/foundation.css;jsessionid=71CFE3AB5E3BAEF5187AE123E79C052D" /> 
<link rel="stylesheet" href="/app/resources/css/app.css;jsessionid=71CFE3AB5E3BAEF5187AE123E79C052D" /> 

同時而分析應用網頁的SORCE代碼,我看到:

<title>Login</title> 
<link rel="icon" href="/app/resources/img/img.png" type="image/x-icon"> 
<link rel="shortcut icon" sizes="196x196" href="/app/resources/img/img.png"> 
<link rel="stylesheet" href="/app/resources/css/foundation.css" /> 
<link rel="stylesheet" href="/app/resources/css/app.css" /> 

我不知道爲什麼會發生這種情況。