1. 程式人生 > >使用apache搭建http檔案伺服器

使用apache搭建http檔案伺服器

如果您能點開這篇文章,說明您已對熟悉Apache HTTP Server(下文用Apache簡稱)配置的重要性已很清楚了,本文不在贅述,直接介入正題,請往下閱讀:

為便於閱讀,列出文章目錄:

一、Apache 的安裝說明

二、Apache 的基本配置

三、Apache 整合 Tomcat 的配置

以下為正文內容:

一、Apache 的安裝說明

1、首先開啟Apache官網,進入Windows版本的下載地址頁面:http://archive.apache.org/dist/httpd/binaries/win32/    並選擇2.2.22_no_ssl版本的msi安裝包下載(高版本的截止到本文編寫時還未官網還未提供msi安裝包),如圖:


下載好就可以開始安裝了。

2、執行剛下載好的msi檔案(httpd-2.2.22-win32-x86-no_ssl.msi),安裝過程如下:


點選Next,繼續:




上面的Network Domain、Server Name和Email Address三項內容如果是本機用於測試個人認為填什麼都沒有問題,但如果是真實的網路環境域名等引數是唯一的,應該如實填寫,填好後點擊 Next 繼續:


此處選擇Custom,可以自定義安裝路徑等,點選 Next 繼續:


紅框中的內容為Apache的安裝路徑,可以點選Change更改,其它資訊預設,點選 Next 繼續:


點選 Install 開始安裝:


安裝過程中會彈出幾個CMD視窗,會自動關閉,不用管,最後:


點選 Finish 安裝完成,開始執行裡輸入services.msc,即可看到Apache已經註冊為Windows服務了:


Windows工作列右下角也自動開啟了Apache Monitor:,如果此時Apache服務沒有自動啟動或者啟動Apache服務時彈出類似下圖中的視窗:


說明Apache預設的 80 埠已被佔用了。你可以關掉佔用80埠的軟體,也可以更改Apache的預設配置,使其監聽其它埠即可。

二、Apache 的基本配置

開啟 Apache 的安裝目錄,其主要配置都集中在conf資料夾下的 httpd.conf 檔案中,位置如圖所示:


用UltraEdit 或 Notepad++開啟httpd.conf檔案,從上往下閱讀:

1、第35行,ServerRoot 為Apache的安裝路徑,這個瞭解就可以,不用管它;

2、第46行,Listen 80   指定了 80 為Apache的預設監聽埠,這裡我們改成 88,防止和其它佔用80埠的軟體衝突。改完後在啟動Windows服務中啟動它,此時可以看到沒有報錯視窗了。開啟瀏覽器,位址列中輸入http://localhost:88  如果看到如下資訊說明Apache已經正常安裝並啟動成功了:


3、第172行,ServerName 為之前安裝時設定的DNS域名(如果沒有域名就輸入IP,記得跟上埠號),#號為註釋,這裡去掉#號,修改後的內容如下:

ServerName 127.0.0.1:88

修改完之後,先測試下配置是否正確:開啟開始選單-》所有程式,找到Apache HTTP Server 2.2 下的Test Configuration,並執行,如圖:


如果彈出的CMD串列埠的內容為 Syntax OK 並一閃而過,說明配置是沒有問題的;否則的話會提示出錯資訊並停留30後才自動關閉。

4、第179行,DocumentRoot  一般為js、css、html、png、gif、jpg等靜態資原始檔的存放目錄,這裡我們定義存放在D盤的Apache_Statics資料夾下。修改後的內容如下:

DocumentRoot "D:/Apache_Statics"

5、第193行,將 Deny from all 改成 allow from all 否則訪問靜態檔案時頁面會提示 Forbidden 禁止訪問的資訊。修改後的內容如下圖:


6、第206行,Directory 修改成和 DocumentRoot 對應的值相同,修改後的內容如下:

<Directory "D:/Apache_Statics">

7、第219行,將 Options Indexes FollowSymLinks 註釋掉,並在其下追加一行 Options None。作用和 Tomcat下的conf/web.xml中的 listings 設定成 false 一樣,為了避免在瀏覽器中列出 服務端資源 的目錄結構。

三、Apache 整合 Tomcat 的配置

Apache 可通過整合不同的模組來完成預設未提供的功能,如整合 Tomcat 就需要安裝 mod_jk 這個模組。通過載入這個模組並進行相應的配置,即可實現 Apache 通過監聽指定的埠(上面配置了 88 埠)來解析靜態資源內容,動態資源內容如 jsp、servlet、action 則交給Tomcat來解析。具體說明如下:

2、將 mod_jk-1.2.31-httpd-2.2.3.so 檔案拷貝到Apache安裝目錄的 modules 資料夾下,如下圖:


3、在conf 資料夾(httpd.conf 所在的資料夾)新建一個 workers.properties 檔案,內容如下圖:


workers.tomcat_home 為 tomcat的安裝路徑;workers.java_home 為 jdk 的安裝路徑;mod_jk 一般 使用 ajp13 協議 與 tomcat 連線,預設使用8009埠,埠可以在Tomcat 的 conf/server.xml中檢視,如下圖:


4、在httpd.conf 的最末尾處 新增一段程式碼,如下圖(紅框內):


上述程式碼載入了 mod_jk 模組 和 workers.properties 檔案,並定義了日誌檔案的輸出位置(logs/mod_jk.log);ServerAdmin、DocumentRoot、ServerName和之前配置的相同即可;JkMount 指定了 那些路徑 會通過 ajp13 協議 交給Tomcat 去處理,多個路徑定義多個 JkMount ... ajp13 即可。這樣以WEB-INF開頭的或者以.action或.jsp結尾的或者以 servlet/ 開頭的 URL 都會 交由 Tomcat 去解析。自此,Apache 與 Tomcat 整合完畢,通常情況下程式的靜態資源部分部署到之前提到的D:\Apache_Statis資料夾下,而非靜態資源則部署到Tomcat下。