0

私は6台のマシンを持っています。3台はRHEL3(Taroon Update 9)を実行しており、他の3台はRHEL 5.6(Tikanga)を実行しています。

それらはすべて、を含むNFSボリュームを共有します

  1. Apache2.2.4のインストール
  2. そのApacheの構成ファイル
  3. そのApacheによって提供されるPHPスクリプトおよびその他のコンテンツ

各マシンで、その共有Apacheは、他のマシンで実行されているApacheインスタンスと区別するために、「-D$hostname」オプションで開始されます。(ここで、$ hostnameはマシンのホスト名です)。

これらの6台のマシンの前にロードバランサー(別のApache)があり、それらの間で要求のバランスを取ります。

問題:

これらのルールを含むディレクトリに.htaccessファイルを配置しました。

order deny,allow
deny from all
allow from my.very.own.ip

(間で構成ファイルで同じルールを試しましたが、同じ結果になりました)

my.very.own.ip以外のIPからの要求は、6つのApacheすべてによって拒否されます。

最初の3つのApache(RHEL 3で実行)にヒットするmy.very.own.ipからの要求は受け入れられますが、これは正常です。

最後の3つのApache(RHEL 5.6で実行)にヒットしたmy.very.own.ipからの要求は拒否されます(HTTP 403、サーバー構成によってクライアントが拒否されました)。これは正常ではありません。

すべてのApacheサーバー(およびその分岐した子)でstraceを実行しましたが、次のようになります。

--my.very.own.ipからのリクエストによる「良い」Apache

19553 read(7, "GET /my/website"..., 8000) = 1761
19553 gettimeofday({1343736878, 168708}, NULL) = 0
19553 gettimeofday({1343736878, 168787}, NULL) = 0
19553 gettimeofday({1343736878, 168835}, NULL) = 0
19553 stat64("/shark/apps/apache1/conf/www/maps/stationlist.txt", {st_mode=S_IFREG|0644, st_size=5557, ...}) = 0
19553 stat64("/shark/apps/apache1/conf/somedir/stationkidsurls.txt", {st_mode=S_IFREG|0644, st_size=6200, ...}) = 0
19553 stat64("/shark/www_docs/my/website/php/script.php", {st_mode=S_IFREG|0644, st_size=2449, ...}) = 0
19553 open("/shark/www_docs/.htaccess", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
19553 open("/shark/www_docs/my/.htaccess", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
19553 open("/shark/www_docs/my/website/.htaccess", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
19553 open("/shark/www_docs/my/website/php/.htaccess", O_RDONLY|O_LARGEFILE) = 10
19553 fstat64(10, {st_mode=S_IFREG|0644, st_size=51, ...}) = 0
19553 read(10, "    order deny,allow\n    deny f"..., 4096) = 51
19553 read(10, "", 4096)                = 0
19553 close(10)                         = 0
19553 open("/shark/www_docs/my/website/php/script.php/.htaccess", O_RDONLY|O_LARGEFILE) = -1 ENOTDIR (Not a directory)
19553 getpid()                          = 19553
19553 setitimer(ITIMER_PROF, {it_interval={0, 0}, it_value={60, 0}}, NULL) = 0
19553 rt_sigaction(SIGPROF, {0x1280014, [PROF], SA_RESTORER|SA_RESTART, 0x3c10d8}, {0x1280014, [PROF], SA_RESTORER|SA_RESTART, 0x3c10d8}, 8) = 0
19553 rt_sigprocmask(SIG_UNBLOCK, [PROF], NULL, 8) = 0
19553 getcwd("/", 4095)                 = 2
19553 chdir("/shark/www_docs/my/website/php") = 0

--my.very.own.ipからのリクエストによる「悪い」Apache

1723  read(9, "GET /my/website"..., 8000) = 1761
1723  gettimeofday({1343736621, 548677}, NULL) = 0
1723  gettimeofday({1343736621, 548735}, NULL) = 0
1723  gettimeofday({1343736621, 548771}, NULL) = 0
1723  stat64("/shark/apps/apache1/conf/www/maps/stationlist.txt", {st_mode=S_IFREG|0644, st_size=5557, ...}) = 0
1723  stat64("/shark/apps/apache1/conf/somedir/stationkidsurls.txt", {st_mode=S_IFREG|0644, st_size=6200, ...}) = 0
1723  stat64("/shark/www_docs/my/website/php/script.php", {st_mode=S_IFREG|0644, st_size=2449, ...}) = 0
1723  open("/shark/www_docs/.htaccess", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
1723  open("/shark/www_docs/my/.htaccess", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
1723  open("/shark/www_docs/my/website/.htaccess", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
1723  open("/shark/www_docs/my/website/php/.htaccess", O_RDONLY|O_LARGEFILE) = 12
1723  fstat64(12, {st_mode=S_IFREG|0644, st_size=51, ...}) = 0
1723  read(12, "    order deny,allow\n    deny f"..., 4096) = 51
1723  read(12, "", 4096)                = 0
1723  close(12)                         = 0
1723  open("/shark/www_docs/my/website/php/script.php/.htaccess", O_RDONLY|O_LARGEFILE) = -1 ENOTDIR (Not a directory)
1723  gettimeofday({1343736621, 550606}, NULL) = 0
1723  write(10, "[Tue Jul 31 08:10:21 2012] [erro"..., 159) = 159
729   <... read resumed> "[Tue Jul 31 08:10:21 2012] [erro"..., 65536) = 159
729   gettimeofday({1343736621, 550743}, NULL) = 0
729   gettimeofday({1343736621, 550786}, NULL) = 0

どう思いますか?

RHELバージョンのこれらのマシン間の唯一の違い。これは、NFS共有(/ shark)が異なる方法でマウントされていることを意味する場合もあります...

.htaccessを変更し、rewriteでallow、denyルールを変更しました(my.very.own.ipからのリクエストは別の場所にリダイレクトされます)。しかし...私はまだ、同じルールが異なるマシン(同じApache、同じ構成ファイル)で異なる動作をするのはなぜか疑問に思っています。

ありがとうございました!

4

0 に答える 0