centos httpd.conf はディレクトリに異なる IP を設定します。

centos httpd.conf はディレクトリに異なる IP を設定します。

私のサーバーには3つのIPがあり、それを使ってTwitter APIの制限を増やしたいと思います。

centos 6.1(Apache 2.3.1)httpd.confでディレクトリに異なるIPを設定する方法

一番下に次の行を追加しました。httpd.conf

<VirtualHost NEW IP:80>
    ServerName mydomain.com/subdir
    ServerAlias www.mydomain.com/subdir
    DocumentRoot /var/www/html/subdir
    <directory "/var/www/html/subdir">
        Options Indexes FollowSymLinks
        AllowOverride all
        Order Deny,Allow
        Allow from all
    </directory>
</VirtualHost>

しかし、/var/www/html/subdir/index.phpコードでテストするとき

<?php
function get_server_ip() {
    if (isset($_SERVER)) {
        if($_SERVER['SERVER_ADDR']) {
            $server_ip = $_SERVER['SERVER_ADDR'];
        }else{
            $server_ip = $_SERVER['LOCAL_ADDR'];
        }
    }else {
        $server_ip = getenv('SERVER_ADDR');
    }
    return $server_ip;
}
echo get_server_ip();
?>

それでも古いIP(私のサーバーのデフォルトIP)が返されます。では、これは可能ですか?達成する方法?それ以外の場合は、3つのIPを使用してTwitter APIの制限を増やす方法。

ベストアンサー1

単にApacheを設定するだけでは十分ではありません。これがうまく機能するためには、Centos(RedHat)システムで複数のIPアドレスを設定する必要があります。

物理ネットワークインターフェイスが1つしかないと仮定すると、関連するeth0すべてのパラメータを含むファイルがあります。

$ cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.0.255
IPADDR=192.168.1.1
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes

(これはIP = 192.168.1.1の静的IP構成の例であり、構成は異なる場合があります。)

これらの内容はすべてここに説明されています。 CENTOS - ネットワーク構成ファイルそしてCENTOS インターフェース構成ファイル

同じ物理ネットワークインターフェイスに異なるIPを割り当てるには、eth0次の手順を実行しますroot

$ cd /etc/sysconfig/network-scripts/
$ cp ifcfg-eth0 ifcfg-eth0:1
$ vi ifcfg-eth0:1

次にIPADDRを新しいファイルに変更し、他のすべてのパラメータを確認/変更します。

3番目の新しいIPに対しても同じことを行い、cp ifcfg-eth0 ifcfg-eth0:2ファイルを編集できます。

その後、変更を適用するにはネットワークを再起動する必要があります(以前はApacheを停止しました)。

$ service network restart

新しい設定を確認してください。

$ ifconfig 

インターフェイス設定が一覧表示されていることがわかります。eth1( - >ループバックなどのより多くのインタフェースがある可能性があります)eth1:1eth1:2lo

おすすめ記事