Centos

centos httpd.conf 為一個目錄設置不同的ip

  • August 15, 2016

我的伺服器中有 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 限制。

做一個 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 (可能還有更多的 iterfaces,例如lo-> loopback )

引用自:https://unix.stackexchange.com/questions/75333