使用XAMPP配置Apache服務器反向代理
Timor-M 2018-6-17 11:58:03
前言
反向代理(Reverse Proxy)方式是指以代理服務器來接受internet上的連接請求,然後將請求轉發給內部網絡上的服務器,並將從服務器上得到的結果返回給internet上請求連接的客戶端,此時代理服務器對外就表現為一個反向代理服務器。
通俗的說,由於單個服務器的處理客戶端(用戶)請求能力有一個極限,當用戶的接入請求蜂擁而入時,會造成服務器忙不過來的局面,可以使用多個服務器來共同分擔成千上萬的用戶請求,當代理服務器接收到web請求之後,就可以分配給處理指定任務的服務器,或者處於閑置的服務器處理,這樣讓服務端處理的速度得到提升,當然代理服務器的用處還有更多,例如ajax跨域,服務器安全等需要讀者自己去了解。
下圖所示,反向代理:
如果要說配置反向代理的服務器,我相信很多人會首選nginx (網上帖子很多),那麽我們今天就來講講用XAMPP搭建的本地測試環境中的apache 配置。
為了本次的配置演示,我們需要配置幾臺虛擬的服務器(虛擬主機):
- abc.com
- lby.com
- web.com
配置完最終效果:
我們可以直接使用 127.0.0.1(localhost)地址來訪問該域名代理下的三個域名的內容。
例如:現在我們需要訪問 lby.com , 我們可以用 127.0.0.1/lby 來訪問
本次配置總共分成兩大部分:
一 、配置本地hosts 域名解析。
因為是自己設置的虛擬主機域名,所以dns域名解析不了,本地訪問的話,我們可以先配置一個本地的解析,用於方便訪問,距離配置如下:
在系統c盤目錄下找到:C:\Windows\System32\drivers\etc\hosts 文件
打開文件後,在最後面追加以下配置:
127.0.0.1 lby.com
127.0.0.1 abc.com
127.0.0.1 web.com
註意:有些時候是保存不了的,因為c盤的文件默認是只讀,不可以更改保存,所以需要設置權限允許修改。
二、配置apache 中的虛擬主機和代理。
上面已經域名配置好了,接下來就開始搭建上面的3臺虛擬主機吧:
1.在xampp文件夾中打開htdocs(次文件夾默認是xampp服務器的網站根目錄):
為了方便,在該文件夾下新建以下3個文件夾用於作為虛擬主機的目錄:
第一個:lby
第二個:abc
第三個:web
提醒:可以在這三個目錄中,都設置一個index.html頁面,分別設置不同的內容,為了方便識別使用。
2.開始配置虛擬主機:
在xampp 文件夾下找到 httpd-vhosts.conf(虛擬主機配置文件):
I:\xampp\apache\conf\extra\httpd-vhosts.conf
打開後添加以下配置(添加到文檔的最後面即可):
先配置第一臺虛擬主機:(lby.com)
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/xampp/htdocs/lby"
ServerName lby.com
ErrorLog "logs/dummy-host2.example.com-error.log"
CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>
配置第二臺虛擬主機:(abc.com)
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/xampp/htdocs/abc"
ServerName abc.com
ErrorLog "logs/dummy-host2.example.com-error.log"
CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>
配置第三臺虛擬主機:(web.com)
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/xampp/htdocs/web"
ServerName web.com
ErrorLog "logs/dummy-host2.example.com-error.log"
CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>
配置到此,可以開啟apache服務器,測試三個域名訪問,如果沒有其他問題應該可以正常訪問!
3.開始配置反向代理:
a.找到 I:\xampp\apache\conf\httpd.conf
設置httpd.conf,開啟代理:
該配置文件中的"#" 代表註釋,所以只需要將以下幾行內容的註釋去掉即可:
第139行: LoadModule proxy_module modules/mod_proxy.so
第142行: LoadModule proxy_connect_modulemodules/mod_proxy_connect.so
第145行: LoadModule proxy_ftp_modulemodules/mod_proxy_ftp.so
第147行: LoadModule proxy_http_modulemodules/mod_proxy_http.so
b.配置代理:
其實配置虛擬主機那個文件(I:\xampp\apache\conf\extra\httpd-vhosts.conf)中,有一個默認的主機就是 localhost, 我們來看下它的默認配置:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/xampp/htdocs/"
ServerName localhost
ErrorLog "logs/dummy-host2.example.com-error.log"
CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>
上面的這個就是默認的127.0.0.1 主機的配置了,所以我們要在這個主機上配置去代理請求我們設置好的虛擬主機,需要在上面添加以下配置:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/xampp/htdocs/"
ServerName localhost
#配置代理清單,註意 /的路徑問題
ProxyPass /web http://web.com/
ProxyPass /lby http://lby.com/
ProxyPass /abc http://abc.com/
ErrorLog "logs/dummy-host2.example.com-error.log"
CustomLog "logs/dummy-host2.example.com-access.log" common
</VirtualHost>
至此,配置完之後保存,重啟apache服務
我們就可以使用 127.0.0.1/lby 來訪問到原虛擬主機 lby.com的內容了。
使用XAMPP配置Apache服務器反向代理