Apache+tomcat實現應用伺服器叢集

nakirimomodusu發表於2022-03-26

Ngnix/Apache比較

  • Nginx:Nginx是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器,在BSD-like 協議下發行。其特點是佔有記憶體少,併發能力強,事實上nginx的併發能力確實在同型別的網頁伺服器中表現較好,中國大陸使用nginx網站使用者有:百度、京東、新浪、網易、騰訊、淘寶等。
  • Apache HTTP Server(簡稱Apache)是Apache軟體基金會的一個開放原始碼的網頁伺服器,可以在大多數計算機作業系統中執行,由於其多平臺和安全性被廣泛使用,是最流行的Web伺服器端軟體之一。它快速、可靠並且可通過簡單的API擴充套件,將Perl/Python等直譯器編譯到伺服器中。
  • 可以使用curl -I(大寫i)選項檢視響應頭部資訊,試試:?

  • 【Tengine是由淘寶網發起的Web伺服器專案。它在Nginx的基礎上,針對大訪問量網站的需求,新增了很多高階功能和特性。它的目的是打造一個高效、安全的Web平臺。】
  • 現在主流的web伺服器都採用nginx的部署方式——
    主流的網站基本採用:lamp/lnmp方式部署web伺服器(l——linux,a——apache,n——nginx,m——mysql,p——php)
  • 更多Ngnix和Apache的對比可以看這篇文章https://www.cnblogs.com/cunkouzh/p/5410154.html

下面開始Apache配置部署(windows)

  • 先pia一下安裝方式
    • 進入官網https://httpd.apache.org/

 - 選擇一個版本下載即可,把壓縮包解壓到自己想放的位置

配置

  • 將httpd.exe位置配置進系統環境變數

  • (在conf資料夾裡)配置httpd.conf檔案

    • 寫入絕對安裝路徑,最後不能帶“"

修改埠

  • 使用命令列介面
 httpd -t     //測試配置是否合法
  • 如果出現”AH00558: httpd: Could not reliably determine the server's fully qualified domain name.......”的報錯,則繼續配置httpd.conf檔案

  • 修改"#ServerName www.example.com:80"為"ServerName localhost:80"
    
    再測試執行,顯示成功。
  • PS:如果80埠被佔用,還需要修改至其他埠,使用"netstat -ano"檢視所有埠,也可直接使用”netstat -ano | findstr 80”直接檢視80埠情況

安裝服務

httpd -k install -n Apache2.4   //其中-n後的引數是自定義安裝的服務名

成功顯示如下,Errors是正常提示

PS:如果443埠被佔用需要同時修改httpd.conf以及httpd-ssl.conf中所有443為442

出現問題先移除服務再重試

httpd -k uninstall

啟動伺服器

httpd -k start -n Apache2.4

開啟網頁http://localhost:90/index.html(埠根據自己設定的填寫)

刪除服務

指路:https://www.php.cn/apache/427478.html

配置tomcat

  • 在tomcat官網下載一個壓縮包版本,解壓成兩個資料夾tomcat1和tomcat2

    • 在tomcat1的目錄下開啟tomcat1/conf/server.xml,修改HTTP/1.1埠號為:8081,修改AJP

    •     <Connector port="8081" protocol="HTTP/1.1"
                     connectionTimeout="20000"
                     redirectPort="8443" />
              <Connector protocol="AJP/1.3"
                     port="8009"
                     redirectPort="8443" />      
      
    • 在tomcat1的目錄下開啟tomcat2/conf/server.xml,修改HTTP/1.1埠號為:8082,修改AJP,修改server port為8006

    •     <Connector port="8082" protocol="HTTP/1.1"
                 connectionTimeout="20000"
                 redirectPort="8444" />
      <Connector protocol="AJP/1.3"
                 port="8010"
                 redirectPort="8444" />
      
  • 修改一下tomcat/conf/logging.properties,把編碼改成GBK,防止亂碼

  • 點選bin/startup.bat啟動服務,檢視http://localhost:8081,啟動成功。

  • 此時可以替換兩個tomcat中webapps的index檔案改為自己的index.html 如下

  • http://localhost:8081/sample1/index.html

  • http://localhost:8082/sample2/index.html

叢集配置

  • 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本身並沒有mod_jk.so,是由tomcat提供的,

  • mod_jk.so下載地址[http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/],根據自身apache版本找一個放在modules下面。

  • 接下來修改httpd.conf,載入mod_proxy.so、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"
    

    此時檢視網頁,配置成功。

    (http://localhost:90/sample2/)

    (http://localhost:90/sample1/)

  • (學習原文:https://blog.csdn.net/weixin_34367257/article/details/91829500

相關文章