前言:最近心情不太好,所以就來寫寫博客。之前一直想寫,怪自己太懶,趁現在還比較閒,就趕緊寫了。熱情沒了之後,我想我也不會再點開博客了。。說到服務器,“魯大師”說其實就是一部電腦。長篇大論的話百度上有的是,這裏我總結一下我自己所搭的服務器的方法和技巧。
一、tomcat+phpstudy(最新版支持php7的是2016版)
對於新手來說,直接下載集成了apache、mysql的phpstudy或者xxamp都是很機制的選擇。
二、.正向代理和反向代理
三.apache 整合 tomcat
方法一,使用 mod_jk。很多網站上介紹到 Apache HTTP server 和 Tomcat server 整合的時候,都是在介紹 mod_jk.so 的使用,這是一種比較老的方法,並且需要額外下載 mod_jk。Apache 和 Tomcat 的默認配置文件都需要改動。
方法二, URL rewrite,也就是對於指定格式的 URL,轉發給某個 Tomcat 的網址。這裏所說的指定格式,是指 Apache 所使用的正則表達式,通俗地將,是一種類似 * 的一種比較高級通配符。這種方法不需要下在額外的文件,只需要配置 Apache。
方法三,mod_proxy_ajp,僅在 Apache 2.1 及以後的版本中可用,Apache 自帶的一個新功能模塊。這時 Apache 使用 Apache JServ Protocol 與 Tomcat 通訊。不需要下在額外的文件,需要改動Apache 和 Tomcat 的默認配置文件都需要改動。
方法四,mod_proxy。其實 mod_proxy 既可以做類似於 Wingate 一樣的公司局域網共享上網代理,也可以做反向代理(Reverse proxy)。這裏使用的是反向代理功能,用戶端瀏覽器不需要把代理服務器改成這裏的 Apache 地址。mod_proxy 是 Apache 自帶功能,並且配置比較簡單。
這裏主要講解一下方法四(出於方便和安全角度)
一.apache中的參數問題
1、ProxyPass:
語法:ProxyPass [path] !|url
它主要是用作URL前綴匹配,不能有正則表達式,它裏面配置的Path實際上是一個虛擬的路徑,在反向代理到後端的url後,path是不會帶過去的,使用示例:
1)、ProxyPass /images/ !
這個示例表示,/images/的請求不被轉發。
2)、ProxyPass /mirror/foo/ http://backend.example.com/
我們假設當前的服務地址是http://example.com/,如果我們做下面這樣的請求:
http://example.com/mirror/foo/bar
那將被轉成內部請求:
http://backend.example.com/bar
2、ProxyPassMatch:注:配置的時候,不需要被轉發的請求,要配置在需要被轉發的請求前面。
語法:ProxyPassMatch [regex] !|url
這個實際上是url正則匹配,而不是簡單的前綴匹配,匹配上的regex部分是會帶到後端的url的,這個是與ProxyPass不同的。使用示例:
1、ProxyPassMatch ^/images !
這個示例表示對/images的請求,都不會被轉發。
2、ProxyPassMatch ^(/.*\.gif)$ http://backend.example.com$1
這個示例表示對所有gif圖片的請求,都被會轉到後端,如此時請求http://example.com/foo/bar.gif,那內部將會轉換爲這樣的請求http://backend.example.com/foo/bar.gif。
3、ProxyPassReverse
語法:ProxyPassReverse [路徑] url
它一般和ProxyPass指令配合使用,此指令使Apache調整HTTP重定向應答中Location, Content-Location, URI頭裏的URL,這樣可以避免在Apache作爲反向代理使用時,。後端服務器的HTTP重定向造成的繞過反向代理的問題。參看下面的示例:
ProxyPass /example http://www.example.com/
ProxyPassReverse /example http://www.example.com/ProxyPassReverse的作用就是反向代理,如果沒有加這樣的反向代理設置的情況下,訪問http://www.test.com/example/a,如果www.example.com對請求進行了redirect至http://www.example.com/b,那麼,客戶端就會繞過反向代理,進而訪問http://www.test.com/example/b。如果設置了反向代理,則會在轉交HTTP重定向應答到客戶端之前調整它爲http://www.test.com/example/a/b,即是在原請求之後追加上了redirect的路徑。
二.配置方法
下載 Apache web server 2.2,安裝完成後,修改安裝目錄下的 conf/httpd.conf 文件,將以下兩行前的註釋字符 # 去掉。
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
在這個配置文件最後,加上
ProxyPass /app1 http://<tomcat_server_address>:port/url1
ProxyPassReverse /app1 http://<tomcat_server_address>:port/url1
保存配置文件後重新啓動 Apache 就可以了。當用戶訪問
http://<apache_server_address>/app1 的時候,Apache 後臺自動將請求轉發給 Tomcat ,用戶只認爲 Apache server 就是他所要的應用服務器。