この記事では、プロキシを使用して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 ほとんどのモジュールをコンパイルする モジュールをDSO(動的共有オブジェクト)モードに設定する エージェントモジュールを起動する DSOモード用にエージェントモジュールをインストールする 書き換え汎用モジュールの開始 DSOモード用の書き換え汎用モジュールのインストール 注意:Apacheをコンパイルするときは、ほとんどのモジュールをコンパイルしてDSOモードに設定する必要があります。プロキシを起動し、同時にモジュールを書き換えて、DSOモードに設定します。 #make #make install は、Apacheに必要なすべてのファイルを/usr /local /apacheディレクトリにインストールします。 /usr /local /apacheディレクトリでhttpd.confファイルを見つけて、このファイルに次の内容を追加します。 NameVirtualHost 1.2.3.4:80 注: 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は機能しません。 上記の仮想ホストの書き換え規則では、書き換えられたURLは要求したURLと同じです。ファイアウォールの/etc /hostsファイルで、Apacheは内部の3つのWebサーバーからコンテンツを取得して外部ユーザーに返します対応するドメイン名レコードは次のとおりです。 192.168.2.2 weba.company.com したがって、外部ユーザーが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ファイルを設定するだけです。対応するレコードを追加してください。
#。/configure --prefix = /usr /local /apache
--enable-module = most
- -enable-shared = max
--enable-shared = proxy
--enable-module = rewrite
--enable-shared = rewriteインストールのデフォルトディレクトリを設定する
<P> 5。 httpd.confファイルでドメインベースの仮想ホストを設定します。
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
<P> 6。 /etc /hostsファイルにレコードを追加する
192.168.2.3 webb.company.com
192.168.2.4 webc.company.com
III。まとめ
>
誰もが聞いたはずのディスクレスブートですが、今では多くのインターネットカフェや企業がこの技術を使っていますが、これらのディスクレスシステムはほとんどがWindowsですLinuxのディスクレスブート方
Gitは世界で最も先進的な分散バージョン管理システム(誰にもできない)として、おそらく多くの人が学びたいと思うが、最初にGitのインストール方法を学ぶ必要がある。初期のGitはLinux上で開発されま
redhat-5.4 Uディスクインストールプロセス 準備: FbinstTool.exe-software redhat-5.4 -boot.fba-bootファイル rhel-server
RedisはオープンソースのANSI C言語で、ネットワークをサポートし、メモリベースの永続ログタイプ、Key-Valueデータベースを提供し、多言語APIを提供します。 2010年3月15日から、R