日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

使用Apache反向代理实现全能主机的搭建

發(fā)布時(shí)間:2025/5/22 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用Apache反向代理实现全能主机的搭建 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

閑談:

很多站長(zhǎng)在購買虛擬主機(jī)的時(shí)候,會(huì)看虛擬主機(jī)的一些參數(shù),其中最重要的就是支持的程序語言?,F(xiàn)在很多IDC商家都在宣稱全能主機(jī)。


最好笑的一個(gè)事情就是,筆者剛建站的時(shí)候,購買了國(guó)內(nèi)一家小主機(jī)商(名叫主機(jī)屋)的虛擬主機(jī),他們宣傳就是全能主機(jī),什么語言都支持。這樣的幌子去騙一些菜鳥還可以,對(duì)于一個(gè)懂技術(shù)的,就只能對(duì)他們的伎倆投以鄙視的眼光。后來詢問之后,才知道他們所謂的全能主機(jī),也就僅僅只支持PHP和ASP同時(shí)運(yùn)行(使用IIS運(yùn)行PHP),連ASP.net都不支持,對(duì)于這事,筆者還和他們理論了半天,現(xiàn)在估計(jì)再也不敢宣稱全能主機(jī)了,這樣的商家,希望所有站長(zhǎng)都能遠(yuǎn)離,太沒有道德了。


首先說說,什么是全能主機(jī)。


所謂的全能主機(jī),就是一臺(tái)服務(wù)器上面同時(shí)支持多個(gè)不同的應(yīng)用服務(wù)器運(yùn)行,并且能通過外部獨(dú)立域名訪問的主機(jī)。這里的多個(gè),要至少大于等于三個(gè)。


因?yàn)槟壳皝碇v,Apache,IIS,Tomcat是目前被廣泛使用的三種Web服務(wù)器軟件,其中Apache,tomcat是開源軟件,不僅用于Unix系統(tǒng),也有基于Win32平臺(tái)的版本。


IIS是Windows操作系統(tǒng)自帶的組件,也提供了強(qiáng)大的Internet和Intranet服務(wù)功能。這三種服務(wù)器軟件各有特色,IIS對(duì)ASP+Access的支持比較好,而Apache是PHP+MySQL平臺(tái)不二的選擇,Tomcat是運(yùn)行java語言程序的服務(wù)器。 ?

對(duì)于各自的環(huán)境搭建,可以參考《云主機(jī)環(huán)境搭建教程之IIS配置篇》,《云主機(jī)環(huán)境搭建教程之PHP配置篇》,以及《云主機(jī)環(huán)境搭建教程之Java配置篇》。


大家都知道,http只有一個(gè)開放端口,就是80端口。外部通過獨(dú)立域名訪問網(wǎng)站的時(shí)候,如果不加端口,會(huì)默認(rèn)訪問服務(wù)器中80端口下面的網(wǎng)站。很現(xiàn)實(shí),這幾個(gè)應(yīng)用服務(wù)器不可能只用一個(gè)端口。如果要訪問,則必須通過域名加端口號(hào)才能訪問,這樣顯然不利于推廣。因此,我們就需要想辦法讓用戶輸入簡(jiǎn)單域名,而我們?cè)诤笈_(tái)截獲域名,然后動(dòng)態(tài)的解析到不同的端口網(wǎng)站上。


按照這樣的思路,筆者想了很多辦法,傳統(tǒng)的就是重新配置IIS,使其支持PHP+MySQL,或者重新配置Apache使其能支持ASP+Access。但考慮到這兩種方法雖然從技術(shù)上都能夠?qū)崿F(xiàn),但配置過程較復(fù)雜,不易于推廣,不利于初學(xué)者使用。況且如果你還搭建了java程序,那就更復(fù)雜了。


筆者也沒有從事過IDC行業(yè)的工作,沒有這方面的經(jīng)驗(yàn)。同時(shí)也在思考現(xiàn)在那些全能功能是如何實(shí)現(xiàn)的。根據(jù)筆者的經(jīng)驗(yàn),他們是有一個(gè)80端口的服務(wù)器做代理分發(fā),將不同的域名分發(fā)到不用的應(yīng)用服務(wù)器的網(wǎng)站上。


通過這樣的思路,筆者想到了使用Apache的虛擬主機(jī)功能和反向代理模塊來實(shí)現(xiàn)。


什么是Apache虛擬主機(jī)。在apache的官方技術(shù)網(wǎng)站上是這樣定義的。

虛擬主機(jī)指的是在單一機(jī)器上運(yùn)行多個(gè)網(wǎng)站 (例如 www.company1.com 和 www.company2.com) 。 虛擬主機(jī)可以“基于 IP”,即每個(gè) IP 一個(gè)站點(diǎn); 或者“基于名稱”, 即每個(gè) IP 多個(gè)站點(diǎn)。這些站點(diǎn)運(yùn)行在同一物理服務(wù)器上的事實(shí)不會(huì)明顯的透漏給最終用戶。


Apache 是第一個(gè)支持基于 IP 的虛擬主機(jī)的服務(wù)器。 Apache 版本 1.1 和更新的版本同時(shí)支持基于 IP 和基于名稱的虛擬主機(jī)。 基于名稱的虛擬主機(jī)有時(shí)候稱為基于主機(jī)或非 IP的虛擬主機(jī)。

詳細(xì)地址:http://httpd.apache.org/docs/2.2/vhosts/

注:本文是基于名稱的虛擬主機(jī)配置。


什么是反向代理。

反向代理(Reverse Proxy)方式是指以代理服務(wù)器來接受internet上的連接請(qǐng)求然后將請(qǐng)求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的服務(wù)器,并將從服務(wù)器上得到的結(jié)果返回給internet上請(qǐng)求連接的客戶端,此時(shí)代理服務(wù)器對(duì)外就表現(xiàn)為一個(gè)web服務(wù)器。

那么我們就將Apache服務(wù)器做為一個(gè)代理web服務(wù)器,用它來處理從外部訪問過來的任何請(qǐng)求并且返回給外部。

有興趣的朋友可以了解下什么是正向代理。


名詞術(shù)語大概介紹完了,那么本文主要通過一個(gè)例子來為大家簡(jiǎn)述配置的具體方法。

前言:

仍然以筆者的www.bxw001.com這個(gè)域名為例。這個(gè)網(wǎng)站是一個(gè)ASP+Access網(wǎng)站,建立在IIS6.0下,端口設(shè)置為81。如果不使用反向代理,則用戶訪問這個(gè)網(wǎng)站時(shí),必須使用www.bxw001.com:81 才能正常訪問,很麻煩。

通過反向代理設(shè)置后,用戶仍然使用www.bxw001.com域名網(wǎng)站,但首先會(huì)進(jìn)入到Apache服務(wù)器,然后再調(diào)轉(zhuǎn)到IIS下的正式網(wǎng)站去。


設(shè)置步驟如下:


1、加載Apache的代理模塊

打開httpd.conf文件,放開以下幾行代碼的注釋,(將前面的#去掉即可),此時(shí)Apache就是一個(gè)web代理服務(wù)器了。

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_connect_module modules/mod_proxy_connect.so

LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so


2、建立虛擬主機(jī),進(jìn)行端口重定向

為需要代理的網(wǎng)站建立一個(gè)虛擬主機(jī),在此筆者強(qiáng)烈建議,都通過虛擬主機(jī)來單獨(dú)配置。有些朋友可能直接在httpd.conf文件里修改,這樣雖然也能實(shí)現(xiàn),但是所有的訪問,包括不是代理域名的訪問都會(huì)進(jìn)入被代理的網(wǎng)站去。

因?yàn)锳pache虛擬主機(jī)的加載順序是按照順序來加載的,如果訪問的url配置了虛擬主機(jī),則進(jìn)行代理訪問,如果沒有,默認(rèn)是以第一個(gè)的。


因此,需要引入虛擬主機(jī)單獨(dú)的配置文件,在這里面增加虛擬主機(jī)配置。

在httpd.conf文件中找到這行代碼,Include conf/extra/httpd-vhosts.conf,去掉#注釋。


以下關(guān)于虛擬主機(jī)的配置都在httpd-vhosts.conf下進(jìn)行。

默認(rèn)Apache提供了兩個(gè)樣例,不用管,直接注釋掉,或者在原來上面修改也可以。


我們是要將站點(diǎn)www.bxw001.com域名的所有訪問轉(zhuǎn)向IIS下面的81端口,先增加一個(gè)虛擬主機(jī)。代碼如下:

<VirtualHost *:80>
? ?ServerAdmin webmaster@a.com
? ?DocumentRoot "d:/wwwroot/www.bxw.com"
? ?ServerName bxw001.com
? ?ServerAlias www.bxw001.com
? ?ErrorLog "logs/bxw001.com.log"
? ?CustomLog "logs/bxw001.com.log" common
? ?<Directory "d:/wwwroot/www.bxw.com">
? ? Require all granted ?
? ?</Directory>
? ProxyPass / http://localhost:81/
? ProxyPa***everse / http://localhost:81/
</VirtualHost>

解釋:

ServerAdmin:這個(gè)就是郵箱,可以默認(rèn)

DocumentRoot:這個(gè)是你被代理的網(wǎng)站的根目錄地址。我們這就是IIS6.0下面的ASP網(wǎng)站目錄。注意目錄斜杠的方向。

ServerName :被代理的域名,這里就是你IIS下ASP網(wǎng)站的獨(dú)立域名。

ServerAlias:同上,別名,一般可以寫成一級(jí)或者二級(jí)域名。

ErrorLog :日志文件地址和名稱。一般以域名作為文件名,方便區(qū)分,默認(rèn)存放在apache的logs目錄下。

<Directory > 設(shè)置虛擬主機(jī)的目錄的訪問權(quán)限。筆者建議權(quán)限的設(shè)定都在虛擬主機(jī)下單獨(dú)設(shè)置,而不是在httpd.conf中統(tǒng)一設(shè)置成所有都可以訪問,這樣不安全。

ProxyPass :這個(gè)是關(guān)鍵,表示IIS下面ASP網(wǎng)站的真實(shí)訪問地址,這里寫成localhost,也可以寫成域名+端口,這要看你在IIS設(shè)置的主機(jī)頭地址了。如果主機(jī)頭默認(rèn),那么這里就是localhost。

ProxyPa***everse :反向代理地址,返回給用戶的信息。


同時(shí)不要忘記在所有虛擬主機(jī)的一開始位置,增加默認(rèn)虛擬主機(jī)配置。

<VirtualHost *:80>
? ? ServerAdmin prograsliu@gmail.com
? ? DocumentRoot "D:/wamp/www"
? ? ServerName localhost
? ? ServerAlias localhost ? ?
? ? <Directory "d:/wamp/www">
? ? ? ? Options FollowSymLinks
? ? ? ? AllowOverride All
? ? ? ? Order allow,deny
? ? ? ? Allow from all
? ? </Directory>
</VirtualHost>

這個(gè)默認(rèn),你可以設(shè)置成Apache的www目錄。


以上兩步操作完成后,保存后重啟Apache服務(wù)。你可以試著訪問ASP網(wǎng)站的域名www.bxw001.com,不要加端口號(hào),看看是否可以正常訪問了。呵呵。


如果要增加多個(gè)IIS網(wǎng)站或者JAVA網(wǎng)站,只要按照上面的步驟2中的代碼增加虛擬主機(jī)即可,同時(shí)將代理域名寫成你需要被代理的網(wǎng)站的URL即可。


通過這樣操作,就可以完美實(shí)現(xiàn)一個(gè)全能主機(jī)了,你可以隨便在服務(wù)器上搭建多個(gè)不同環(huán)境的網(wǎng)站了。更多關(guān)于主機(jī)配置與問題的解決文章,請(qǐng)繼續(xù)關(guān)注本博客。


轉(zhuǎn)載于:https://blog.51cto.com/pin18/1250497

總結(jié)

以上是生活随笔為你收集整理的使用Apache反向代理实现全能主机的搭建的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。