Apacheを単一のIPに制限する


13

多数のIPアドレスを持つサーバーがありますが、Apacheがそのうちの1つだけをリッスンするようにします。それは難しいことではないように思えますが、少し前にやったことがありますが、今回は少し問題があります。まず、私が今理解しているのは次のとおりです。

Apacheはポート80をリッスンしているすべての場所で、正しいIPでのみリッスンしています。

/etc/apache2$ grep -R ":80" .
./sites-available/default:<VirtualHost 192.168.0.82:80>
./httpd.conf:<VirtualHost 192.168.0.82:80>
./ports.conf:NameVirtualHost 192.168.0.82:80
./sites-enabled/000-default:<VirtualHost 192.168.0.82:80>

0.0.0.0でのリッスンについての言及はありません。

/etc/apache2$ grep -R "0\.0\.0\.0" .

それでも... Apacheは起動を拒否します。

/etc/apache2$ sudo /etc/init.d/apache2 start
 * Starting web server apache2
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
Action 'start' failed.
The Apache error log may have more information.
                                                                         [fail]

誰かが尋ねた場合、私はそのアドレスに縛られていません:

/etc/apache2$ sudo netstat -nap | grep :80
tcp        0      0 192.168.0.83:80       0.0.0.0:*        LISTEN      2822/node

のエラーログに/var/log/apache2/error.logは次のように記載されています。

[Wed Aug 08 03:30:18 2012] [notice] caught SIGTERM, shutting down

Apacheの設定の場所を見逃していませんか?私が探しているのを覚えていないものはありますか?なぜこれが思い出したほど単純ではないのですか?


1
私は気分を害することはありませんが、この質問のベストアンサーをどのように選択したか説明していただけますか?あなたが選択した答えは別のディストリビューションを参照することでしたが、私の答えはUbuntuに関するスポットオンでした。あなたがそれを選択しなかったので、何らかの方法で私の答えを変えることができましたか?
pauska

あなたの答えにはどちらも重要なListen 192.168.0.82:80行が含まれていました。cjcの答えを選んだのはその行が必要な理由がもう少し深くなったからです。CentOSに同梱されているApacheのバージョンで使用されているコメントに言及するのは良い追加だと思いました。しかし、誰もが答えがパウスカに行くべきであるという一般的な合意にあるように見えるので、私は先に進んで彼にそれを与えました。結局、改訂版を見ると、pauskaのコメントがcjcの現在の形式の回答に大きな影響を与えていることがわかります。
ダン

回答:



16

/etc/apache2/ports.confファイルを見てください。

次のようなディレクティブがあります。

Listen 80

CentOSボックスに関するコメントでは、このオプションについて説明しています。

#
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, in addition to the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses (0.0.0.0)
#
#Listen 12.34.56.78:80

必要に応じて、Listen 80行をに変更しListen 192.168.0.82:80ます。

Apacheはすべてのインターフェイス(0.0.0.0指定)でポート80にバインドしようとしているため、Apacheをすぐに起動できずnode、192.168.0.83 :80でリッスンしています。

仮想ホストブロックのIPは、特定の仮想ホストがそのIPアドレスからの要求に応答することを意味します。Apacheが表示されるインターフェースにバインドする方法を指定しません。


Ubuntuでは、httpd.confは異なるスタイルの構成ファイル(多くのインクルード)を使用するため、空白です。OPのgrepが示したように、「Listen 80」もありません。
pauska

1
ああ、そう。Ubuntu。更新します。grep彼がやっていた反対した:それはデフォルトであるとして、とにかく物事を欠場するつもりだったので、80 Listen 80
cjc

1
そのCentOSのコメントは本当に助かりました。愚かなUbuntuの...
ダン


0

Apacheドキュメントに従って次を使用します。

192.168.0.82:80を聞く

状況によっては(すべてではない)、もう少し進んでこれを行うことができます。

some_name_in_my_localhost:80をリッスンします

そうすることで、Apacheサーバーファームがある状況でApacheの構成を移植可能にします。これには長所と短所があります(他のすべてと同様)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.