打開Apache Server的官網,能夠看到上面只提供源碼,不提供編譯好的包,若是須要二進制文件能夠從其它貢獻者那裏獲取,而且網站上也提供了幾個網址,我選擇了Apache Lounge,由於它同時提供32位和64位的下載,下載好後解壓到某個目錄,如G:\Program Files\Apache24
,而後打開conf/httpd.conf文件,修改其中的某些代碼:css
# Apache的IP地址和端口。通常來講不須要設置,Apache會綁定在本機全部IP地址的80端口上。 Listen 80 Listen 127.0.0.1:80 # Web服務器的名字 ServerName www.mysite.com # 這是網站的根目錄 DocumentRoot "G:\Program Files\Apache24\htdocs" <Directory "G:\Program Files\Apache24\htdocs"> # 這裏刪掉了Indexes,不然別人能夠瀏覽到您網站裏的全部文件 Options FollowSymLinks </Directory>
啓動bin目錄下的httpd.exe文件(也能夠用httpd.exe -k install
命令把apache註冊爲服務,而後用net start Apache2.4
命令啓動Apache),而後在瀏覽器中輸入localhost就能夠看到默認的頁面了--"It works!"。以上簡單的配置只是爲了讓Apache服務器先運行起來,感謝這篇博文。html
參考這篇博客,主要步驟是:linux
Tomcat的安裝比較簡單,打開Tomcat官網,Windows則選擇32位或64位的zip包,Linux則選擇tar.gz包或zip包,下載後解壓到指定目錄便可。web
這是利用 Apache 自帶的 mod_proxy 模塊使用反向代理技術來鏈接 Tomcat。http_proxy 模式是基於 HTTP 協議的代理,所以它要求 Tomcat 必須提供 HTTP 服務,也就是說必須啓用 Tomcat 的 HTTP Connector。首先打開 APACHE_HOME/conf/httpd.conf文件,把下面這些模塊的加載語句前面的註釋#刪掉:正則表達式
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule proxy_ftp_module modules/mod_proxy_ftp.so LoadModule proxy_http_module modules/mod_proxy_http.so Include conf/extra/httpd-vhosts.conf
而後打開 APACHE_HOME/conf/extra/httpd-vhosts.conf,這裏是配置虛擬主機的文件,固然也能夠在httpd.conf文件中配置,可是這裏單獨配置比較清晰。文件中已經提供了一些模版,因此咱們只要照着模板添加:apache
<VirtualHost *:80> ServerAdmin webmaster@dummy-host2.example.com DocumentRoot "G:\working\idea_workspace\demo1\src\main\webapp" ServerName demo1.com ErrorLog "logs/demo1.com-error.log" CustomLog "logs/demo1.com-access.log" common ProxyPass /test http://localhost:8080/demo1/ ProxyPassReverse /test http://localhost:8080/demo1/ </VirtualHost> <VirtualHost *:80> ServerAdmin webmaster@dummy-host2.example.com DocumentRoot "G:\working\idea_workspace\BlogTest\ROOT" ServerName blog.com ErrorLog "logs/blog.com-error.log" CustomLog "logs/blog.com-access.log" common ProxyPass / http://localhost:8082/blog/ ProxyPassReverse / http://localhost:8082/blog/ </VirtualHost>
解釋一下上面的配置,DocumentRoot是指定網站的根目錄,也就是相似於tomcat中的docBase,假如這裏不配置,則默認使用httpd.conf
中的DocumentRoot配置。 ServerName是指定要代理的服務,ProxyPass後面有兩個參數,例如對於第一個<VirtualHost>的配置,它的意思是把全部demo1.com/test/xxx的請求都轉給 http://localhost:8080/demo1/xxx 處理,注意 ProxyPass是用做URL前綴匹配的,不可使用正則表達式,例如代理/*.jpg這樣的配置是不接受的,而ProxyPassReverse主要是爲了防止重定向跳過代理的,關於這一點,能夠參考這篇博客。
這裏配置了兩個虛擬主機,所以Apache能夠對這兩個網站進行代理,從而實現一臺服務器搭建多個網站的功能。要想實現這一點,固然還須要在tomcat中配置,建議對於一個網站就啓動一個tomcat實例,不要使用tomcat的虛擬主機功能,這樣重啓A網站的tomcat實例時就不會影響B網站的運行了。關於tomcat的配置這裏很少作介紹,主要就是注意把tomcat的關閉端口改爲不同的,以及監聽端口不要重複,關於Apache的虛擬主機配置還能夠參考這篇文章。另外,還能夠在<VirtualHost>節點中配置Apache不轉發靜態文件給tomcat處理,這樣能夠提升性能,例如:windows
<VirtualHost *:80> # 這裏同上 ProxyPass /images ! ProxyPass /css ! ProxyPass /js ! </VirtualHost>
由於靜態文件交給了Apache處理,所以須要受權,不然沒法訪問,打開APACHE_HOME/conf/httpd.conf文件,添加以下代碼:瀏覽器
<Directory "G:\working\idea_workspace\demo1\src\main\webapp"> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
這裏指定了demo1網站的根目錄,同時受權,這樣當訪問靜態資源時就不會報403錯誤了。tomcat
關於Apache的配置文件httpd.conf
,還有一些細節和配置的含義在這裏總結一下:服務器
LoadModule
加載模塊的順序是跟它們在文件中聲明的順序相反的,即後寫的LoadModule語句先加載;ServerName
: 標識Apache自身,若是沒有配置,會使用127.0.0.1做爲服務器的默認地址,而這個地址只是一個網絡迴環地址,只有本機能訪問;ScriptAlias
與Alias
:都是用於實現映射目錄的功能,但ScriptAlias是把映射的目錄識別爲CGI腳本目錄,目錄中全部文件都看成CGI腳本對待,而Alias只是映射爲一個普通的目錄;Options
指令:指定在目錄中使用哪些服務器特性,例如Indexes表明開啓索引功能,請求該目錄的URL中若是沒有由DirectoryIndex
指令指定的索引文件,則用戶能夠查看當前目錄的文件列表(默認返回結果是這個),通常狀況下應該要關閉;