Centos
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 限制。
做一個 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 )