centos httpd.conf는 디렉토리에 대해 다른 IP를 설정합니다.

centos httpd.conf는 디렉토리에 대해 다른 IP를 설정합니다.

내 서버에 3개의 IP가 있고 이를 사용하여 트위터 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를 사용하여 트위터 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하고 파일을 편집할 수 있습니다.

그런 다음 변경 사항을 적용하려면 네트워크를 다시 시작해야 합니다(이전에 아파치를 중지했습니다).

$ service network restart

새 구성을 확인합니다.

$ ifconfig 

인터페이스 구성이 나열된 것을 볼 수 있습니다 . eth1( -> 루프백 과 같은 더 많은 인터페이스가 있을 수 있습니다 )eth1:1eth1:2lo

관련 정보