web服務器:Apache、Nginx、IIS等html
應用服務器:Tomcat、JBoss、Weblogic等linux
如今web服務器和應用服務器其實界限已經不是太清晰了,大部分的應用服務器也包含一些web服務器的功能,使用什麼服務器大部分取決與架構場景和技術解決方案。web
在服務器集羣中,主要場景是一下幾種:apache
1,靜態資源優化windows
2,多環境應用整合tomcat
3,負載均衡服務器
4,其餘複合場景架構
接下來準備將Apache(web服務器)與兩個Tomcat(應用服務器)集成在一塊兒。app
1.環境準備負載均衡
1.1 Apache安裝
windows下面安裝Apache簡單不少,直接相似軟件點擊下一步安裝一下,配置一下端口號(默認80)。啓動就行了。
訪問localhost:80/index.html
1.2 Tomcat1與Tomcat2準備
在tomcat官網下載兩個免安裝的zip包直接解壓出來tomcat1和tomcat2;
在tomcat1的目錄下打開tomcat1/conf/server.xml,修改HTTP/1.1端口號爲:8081
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
在tomcat1的目錄下打開tomcat1/conf/server.xml,修改HTTP/1.1端口爲:8082,AJP端口爲:8010,redirectPort:8444,Server port:8006,避免與tomcat1端口衝突,由於我這裏使用的一臺機器搭建的集成環境。
<Connector port="8082" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8444" />
<Connector port="8010" protocol="AJP/1.3" redirectPort="8444" />
在tomcat/bin目錄下點擊startup.bat,啓動兩個tomcat,這裏有一個控制檯亂碼問題,修改一下tomcat/conf/logging.properties,把編碼改成GBK
在idea控制檯裏面有時也會出現相似問題,修改字符集就能夠解決。
1.3 在tomcat1和tomcat2的webapps清空,並放入本身測試的資源sample1和sample2的index.html
hello,tomcat1!
hello,tomcat2!
重啓tomcat1和tomcat2訪問
localhost:8081/sample1/index.html
localhost:8082/sample2/index.html
2.集羣配置
2.1修改httpd.conf,加載模塊
這裏爲何加載mod_jk模塊,Apache與tomcat集成是能夠經過AJP協議也能夠經過HTTP協議,能夠使用mod_jk(AJP)和mod_proxy+mod_proxy_ajp(AJP)集成也能夠使用mod_proxy+mod_proxy_http(HTTP),這裏使用是mod_proxy+mod_proxy_http。
在Apache目錄下的modules找一下,沒有mod_jk.so,他是tomcat提供的,能夠按照本身的機器和Apache版本找一個放在modules下面。
mod_jk.so下載地址http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/
我這裏爲了方便,直接使用mod_proxy.so+mod_proxy_http.so
接下來修改httpd.conf,加載mod_proxy.so、mod_proxy_http.so模塊去掉#
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_module modules/mod_proxy_http.so
在httpd.conf的最後一行,從新開一行,沒有任何結束符號的空白地方增長
ProxyPass "/sample1" "http://localhost:8081/sample1" ProxyPassReverse "/sample1" "http://localhost:8081/sample1" ProxyPass "/sample2" "http://localhost:8082/sample2" ProxyPassReverse "/sample2" "http://localhost:8082/sample2"
訪問localhost:80/sample1
訪問localhost:80/sample2