<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > Linux防火墻上的Apache反向代理

          Linux防火墻上的Apache反向代理

          作者: 時間:2017-06-06 來源:網(wǎng)絡(luò) 收藏
            一、測試環(huán)境與網(wǎng)絡(luò)結(jié)構(gòu)

          本文所使用的測試環(huán)境是Redhat 7.2、 1.3.24,公司域名假設(shè)是company.com。公司的典型網(wǎng)絡(luò)構(gòu)造如附圖所示。

            上的

          注意: 附圖中的上安裝了2塊網(wǎng)卡,其中e0端口的外部公共地址為1.2.3.4,e1端口對應(yīng)內(nèi)部保留地址為192.168.2.1。局域網(wǎng)內(nèi)部有3臺 Web服務(wù)器A、B和C,它們對應(yīng)的域名分別為weba.company.com、webb.company.com和 webc.company.com,均使用內(nèi)部保留地址。

          二、操作步驟

          如附圖所示,此公司通過專線連入互聯(lián)網(wǎng),安裝了,局域網(wǎng)內(nèi)部有3臺Web服務(wù)器,均只有內(nèi)部保留地址,但是希望他們能夠提供對外的Web服務(wù)。

            1.設(shè)置DNS

          在防火墻(同時也是公司的DNS服務(wù)器)上設(shè)置內(nèi)部3臺Web服務(wù)器的DNS,IP地址均為1.2.3.4。這樣,在Internet上解析 weba.company.com、webb.company.com 和webc.company.com時,均指向同一IP地址即防火墻的外部接口地址1.2.3.4。

            2.下載

          從Apache網(wǎng)站(http://www.apache.org)下載目前最新的版本apache 1.3.24到/root目錄,下載地址為http://www.apache.org/dist/httpd/apache_1.3.24.tar.gz。

            3. 更改源代碼使最大允許的請求連接數(shù)超過256

          由于Apache默認允許的最多連接數(shù)為256,而在一個繁忙的網(wǎng)站上這一連接數(shù)量也許不能滿足需要,特別是本文介紹的通過防火墻上的 Apache允許外部用戶訪問多個內(nèi)部Web服務(wù)器的情況,可以采用更改src/include/httpd.h文件的方法,具體步驟如下。

          #cd/root 切換目錄到/root下

          #tar xvfz apache_1.3.24.tar.gz 解開apache源文件到/root下  #cd apache_1.3.24 進入apache_1.3.24目錄

          #vi src/include/httpd.h 用vi編輯httpd.h文件

          在輸入“vi src/include/httpd.h”命令后,繼續(xù)輸入“/256”并按“回車”鍵搜索數(shù)字256,將其改為1024后保存并退出即可。

          本文引用地址:http://www.ex-cimer.com/article/201706/349436.htm
            注意事項:

          ①要支持最多為1024個客戶的同時請求,不僅需要更改上面提到的源文件,在編譯安裝后還需要設(shè)置/usr/local/apache/conf/httpd.conf文件,將其中的“MaxClients”一行后面的參數(shù)更改為“1024”。

          ②如果您僅僅為了進行測試,或者不會有很多人使用,可以不修改httpd.h文件。

            4. 編譯Apache

          編譯代碼如代碼1所示。

          代碼1

          #cd apache_1.3.24

          #./configure --prefix=/usr/local/apache

          --enable-module=most

          --enable-shared=max

          --enable-module=proxy

          --enable-shared=proxy

          --enable-module=rewrite

          --enable-shared=rewrite 設(shè)置安裝默認目錄

          編譯大多數(shù)模塊

          設(shè)置模塊為DSO(動態(tài)共享對象)模式

          啟動代理模塊

          安裝代理模塊為DSO模式

          啟動重寫功能模塊

          安裝重寫功能模塊為DSO模式
          注意: 在編譯Apache的時候,必須編譯大多數(shù)模塊,并將它們設(shè)置為DSO模式,同時啟動proxy和rewrite模塊,同時也將其設(shè)置為DSO模式。

          #make

          #make install

          將安裝所有Apache所需文件到/usr/local/apache目錄下。


            5.在httpd.conf文件中設(shè)置基于域名的虛擬主機

          在/usr/local/apache目錄找到httpd.conf文件,并將下面的內(nèi)容添加至此文件后。

          NameVirtualHost 1.2.3.4:80

          VirtualHost 1.2.3.4:80 >

          ServerAdmin root@company.com

          DocumentRoot /usr/local/apache/htdocs

          ServerName default.company.com

          ErrorLog /usr/local/apache_http/logs/error_log

          CustomLog /usr/local/apache_http/logs/access_log combined

          UseCanonicalName Off

          ProxyRequests Off

          RewriteEngine on

          RewriteCond %{HTTP_HOST}.*.company.com$

          RewriteRule ^/(.*)$ http://%{HTTP_HOST}/$1 [P,L]

          /VirtualHost >

            注意事項:

          ①上面設(shè)置了基于域名的虛擬主機,這樣當(dāng)您從外部訪問IP地址為1.2.3.4的主機,且URL地址后面部分的域名為“company.com”,Apache就可以把用戶的請求轉(zhuǎn)發(fā)到局域網(wǎng)內(nèi)部的Web服務(wù)器上,并重寫響應(yīng)數(shù)據(jù)包去掉代理協(xié)議部分。

          ②“ServerName”一行可以任意指定。

          ③“ProxyRequest Off”一行用來禁止Apache在IP地址為1.2.3.4的主機和端口80上進行代理服務(wù),在這里Apache作為一個透明的代理服務(wù)器來使用。

          ④“RewriteEngine on”一行用來啟動Apache修改響應(yīng)數(shù)據(jù)包的功能,否則下面的“RewriteCond”和“RewriteRule”將不起作用?! ?.添加記錄進入/etc/hosts文件

          在上面的虛擬主機重寫規(guī)則中,重寫后的URL與您所請求的URL是一樣的,我們的設(shè)想是將下面3個域名放到防火墻的/etc/hosts文件中,這樣Apache將從內(nèi)部3臺Web服務(wù)器獲得內(nèi)容,并返回給外部用戶,域名對應(yīng)記錄如下。

          192.168.2.2 weba.company.com

          192.168.2.3 webb.company.com

          192.168.2.4 webc.company.com

           三、總結(jié)

          這樣,當(dāng)外部用戶訪問http://weba.company.com時,請求被送到防火墻的Apache上,而防火墻上的Apache反向代理將根據(jù)/etc/hosts文件中定義的記錄直接從IP地址為192.168.2.2的Web服務(wù)器獲取內(nèi)容并返回給外部用戶,從而完成內(nèi)部Web服務(wù)器weba.company.com對外提供訪問的功能。

          在對Apache配置完畢后,如果還需要增加更多的內(nèi)部Web服務(wù)器來提供外部訪問服務(wù),只需設(shè)置其DNS服務(wù)器的IP地址為1.2.3.4,并在/etc/hosts文件中增加相應(yīng)記錄即可。


          關(guān)鍵詞: 防火墻 Linux Apache 反向代理

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();