1. 程式人生 > >使用XAMPP配置Apache服務器反向代理

使用XAMPP配置Apache服務器反向代理

服務端 ima admin min ces 代理 正常 識別 doc

                                                                     Timor-M 2018-6-17 11:58:03

前言

反向代理(Reverse Proxy)方式是指以代理服務器來接受internet上的連接請求,然後將請求轉發給內部網絡上的服務器,並將從服務器上得到的結果返回給internet上請求連接的客戶端,此時代理服務器對外就表現為一個反向代理服務器。

通俗的說,由於單個服務器的處理客戶端(用戶)請求能力有一個極限,當用戶的接入請求蜂擁而入時,會造成服務器忙不過來的局面,可以使用多個服務器來共同分擔成千上萬的用戶請求,當代理服務器接收到web請求之後,就可以分配給處理指定任務的服務器,或者處於閑置的服務器處理,這樣讓服務端處理的速度得到提升,當然代理服務器的用處還有更多,例如ajax跨域,服務器安全等需要讀者自己去了解。

下圖所示,反向代理:

技術分享圖片

如果要說配置反向代理的服務器,我相信很多人會首選nginx (網上帖子很多),那麽我們今天就來講講用XAMPP搭建的本地測試環境中的apache 配置。


為了本次的配置演示,我們需要配置幾臺虛擬的服務器(虛擬主機):
  1. abc.com
  2. lby.com
  3. 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服務器反向代理