centos httpd.conf为目录设置不同的ip

centos httpd.conf为目录设置不同的ip

我的服务器中有 3 个 IP,我想用它们来增加 twitter API 限制。

如何在centos 6.1 httpd.conf(Apache 2.3.1)中为目录设置不同的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 地址。

假设您只有一个物理网络接口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 更改为新文件(并检查/更改所有其他参数)

您可以对第三个新 IP 执行相同的操作cp ifcfg-eth0 ifcfg-eth0:2并编辑文件。

然后你必须重新启动网络以应用更改(之前停止 apache):

$ service network restart

检查新配置:

$ ifconfig 

您将看到列出的接口配置eth1, eth1:1, eth1:2 (可能还有更多接口,例如lo-> Loopback )

相关内容