Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> WindowsファイアウォールでのApacheリバースプロキシ

WindowsファイアウォールでのApacheリバースプロキシ

  

この記事では、プロキシを使用してApacheをインストールし、企業のファイアウォールにルールを書き換える方法と、Apacheをコンパイルおよび設定する手順について説明します。インストールが成功すると、柔軟な仮想ホスト設定により、外部ユーザーはファイアウォールを通過して内部LAN上の複数のWebサーバーにアクセスできます。

まず、テスト環境とネットワーク構造

この記事で使用したテスト環境はRedhat Linux 7.2、Apache 1.3.24、会社のドメイン名の仮定はcompany.comです。

会社の代表的なネットワーク構成を図に示します。

注:図のファイアウォールには2つのNICが取り付けられており、e0ポートの外部パブリックアドレスは1.2.3.4、e1ポートの内部予約アドレスは192.168.2.1です。 LAN内にはA、B、Cの3つのWebサーバーがあり、対応するドメイン名はweba.company.com、webb.company.com、およびwebc.company.comで、すべて内部予約アドレスを使用しています。

第二に、操作手順

図に示すように、会社は専用回線を介してインターネットに接続し、ファイアウォールを設置し、LAN内に3つのWebサーバーがあり、すべて内部予約アドレスを持っているが彼らは外部のWebサービスを提供することができます。
<P> 1。 DNSの設定

ファイアウォール上にある3つの内部WebサーバーのDNS(会社のDNSサーバーも設定)を設定します。IPアドレスは1.2.3.4です。したがって、インターネット上でweba.company.com、webb.company.com、およびwebc.company.comを解析するとき、それらはすべて同じIPアドレスを指しています。これはファイアウォールの外部インターフェースアドレスである1.2.3.4です。
<P> 2。 Apacheのダウンロード

ApacheのWebサイト(http://www.apache.org)からhttp://www.apache.org/distにアクセスして、最新バージョンのApache 1.3.24を/rootにダウンロードします。 /httpd/apache_1.3.24.tar.gz

3.許可されている最大接続数が256を超えるようにソースコードを変更します。

Apacheはデフォルトで最大256の接続を許可しているため、ビジー状態のWebサイトの接続数は最大になりません。特にファイアウォールのApacheリバースプロキシを使用すると、外部ユーザーは複数の内部Webサーバーにアクセスできますが、次の手順に従って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コマンドを入力した後続けて/256を入力し、Enterを押して番号256を検索し、1024に変更して保存して終了します。

注:

1最大1024クライアントまでの同時リクエストをサポートするには、上記のソースファイルを変更するだけでなく、コンパイルとインストールの後に/usr /local /apacheを設定する必要があります。 /conf/httpd.confファイルで、MaxClients行の後のパラメーターを1024に変更します。

2テストしているだけの場合、またはそれを使用している人があまり多くない場合は、httpd.hファイルを変更することはできません。

4. Apacheのコンパイル//この記事はwww.45it.comのコンピュータソフトウェア/ハードウェアアプリケーションネットワークから転送されたものです。

コード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インストールのデフォルトディレクトリを設定する

ほとんどのモジュールをコンパイルする

モジュールをDSO(動的共有オブジェクト)モードに設定する

エージェントモジュールを起動する

DSOモード用にエージェントモジュールをインストールする

書き換え汎用モジュールの開始

DSOモード用の書き換え汎用モジュールのインストール

注意:Apacheをコンパイルするときは、ほとんどのモジュールをコンパイルしてDSOモードに設定する必要があります。プロキシを起動し、同時にモジュールを書き換えて、DSOモードに設定します。

#make

#make install

は、Apacheに必要なすべてのファイルを/usr /local /apacheディレクトリにインストールします。
<P> 5。 httpd.confファイルでドメインベースの仮想ホストを設定します。

/usr /local /apacheディレクトリでhttpd.confファイルを見つけて、このファイルに次の内容を追加します。

NameVirtualHost 1.2.3.4:80
VirtualHost 1.2.3.4:80
ServerAdmin [email protected]
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の組み合わせ
UseCanonicalNameオフ
ProxyRequestsオフ
RewriteEngine on
RewriteCond% {HTTP_HOST}。*。company.com $
RewriteRule ^ /(。*)$ http://%{HTTP_HOST} /$ 1 [P、L]
/VirtualHost

注:

1外部からIPアドレス1.2.3.4のホストにアクセスし、URLアドレスの後ろのドメイン名がcompany.comになるようにドメインベースのリバースプロキシ仮想ホストを設定します。ユーザーの要求はLAN内のWebサーバーに転送され、応答パケットはプロキシプロトコル部分を削除するように書き換えられます。

2ServerName行は任意に指定できます。

3ProxyRequest Offlineは、Apacheが透過プロキシサーバーとして使用されている、IPアドレスが1.2.3.4でポート80のホスト上のサービスのプロキシからApacheを無効にするために使用されます。 1行の

4RewriteEngineは、応答パケット機能を変更するためにApacheを起動するために使用されます。そうしないと、次のRewriteCondおよびRewriteRuleは機能しません。
<P> 6。 /etc /hostsファイルにレコードを追加する

上記の仮想ホストの書き換え規則では、書き換えられたURLは要求したURLと同じです。ファイアウォールの/etc /hostsファイルで、Apacheは内部の3つのWebサーバーからコンテンツを取得して外部ユーザーに返します対応するドメイン名レコードは次のとおりです。

192.168.2.2 weba.company.com
192.168.2.3 webb.company.com
192.168.2.4 webc.company.com


III。まとめ
>

したがって、外部ユーザーがhttp://weba.company.comにアクセスすると、要求はファイアウォールのApacheに送信され、ファイアウォール上のApacheリバースプロキシは/etc /hostsファイルで定義されたレコードに直接基づいています。コンテンツは、IPアドレスが192.168.2.2のWebサーバーから取得されて外部ユーザーに返され、外部アクセスを提供する外部Webサーバーweba.company.comが完成します。

Apacheを設定した後、外部アクセスサービスを提供するために内部Webサーバーを追加する必要がある場合は、そのDNSサーバーのIPアドレスを1.2.3.4に設定し、/etc /hostsファイルを設定するだけです。対応するレコードを追加してください。

Copyright © Windowsの知識 All Rights Reserved