web-dev-qa-db-ja.com

CentOS 7 httpd / server-statusの制限

私はVPSを持っています(私のOSとしてCentOS 7を使用しています)そして今私は構成していますMunin(監視ソフトウェア)。 Apacheの監視で少し問題が発生しました。

これで、このcfgがhttpd.confにあり、すべてが正常に機能します。

<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from localhost
</Location>

ターミナルムニン:

munin-node-configure --suggest | grep Apache
apache_accesses            | yes  | yes                                    
Apache_processes           | yes  | yes                                    
Apache_volume              | yes  | yes 

しかし、この設定では/server-statusサーバー内のすべてのドメインから利用可能:

example.com/server-status
example.net/server-status
192.0.2.1/example-status

私はこのようなことを達成したい:

example.com/server-status  ---> ERROR 404
example.net/server-status ---> ERROR 404
192.0.2.1/example-status     ---> OK

したがって、cfgをhttpd.confから私のvhost default fileに移動すると、次のようになります。

<VirtualHost _default_:80>
    DocumentRoot /var/www/server
    ErrorLog /var/log/www/server_error.log
    CustomLog /var/log/www/server_requests.log combined
</VirtualHost>

そして更新後:

<VirtualHost _default_:80>
    DocumentRoot /var/www/server
    ErrorLog /var/log/www/server_error.log
    CustomLog /var/log/www/server_requests.log combined

<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from localhost
</Location>
</VirtualHost>

その後、MuninはApacheサービスの監視を停止し、次のように言います。

Apache_accesses            | yes  | no [Apache server-status not found. check if mod_status is enabled]
Apache_processes           | yes  | no [Apache server-status not found. check if mod_status is enabled]
Apache_volume              | yes  | no [Apache server-status not found. check if mod_status is enabled]

PS:サーバーにはホスト名(つまりドメイン)がありません。現在、サーバーIPをホスト名として使用しています

必要な設定を達成するのを手伝ってもらえますか?

3
pes502

必要なServerNameで仮想ホストを作成することで逃げることができると思います。名前ベースの仮想ホストセットアップのServerNameは、ブラウザ/ HTTPクライアントがHostヘッダーフィールドに入力したものにマップされます。

したがって、これは機能するはずです。

<VirtualHost *:80>
    ServerName 192.168.1.2
    DocumentRoot /var/www/server
    ErrorLog /var/log/www/server_error.log
    CustomLog /var/log/www/server_requests.log combined

    <Location /server-status>
        SetHandler server-status
        Order deny,allow
        Deny from all
        Allow from localhost
    </Location>
</VirtualHost>

Apacheのドキュメント( https://httpd.Apache.org/docs/current/mod/core.html#servername )は、IPをServerNameとして使用できることを指定し、ServerNameがどのように機能するかを次のように説明しています。

名前ベースの仮想ホストを使用している場合、セクション内のServerNameは、この仮想ホストと一致するためにリクエストのHost:ヘッダーに表示する必要があるホスト名を指定します。

1