NGINX 프록시 사용시 REMOTE_ADDR 문제



Apache => Apache 사용시 또는 Apache => Nginx 사용시 PHP에서 $_SERVER['REMOTE_ADDR'] 값이 127.0.0.1 로 나오게 됩니다.


<VirtualHost www.example.com:80>

    ServerName www.example.com

    DocumentRoot /var/www/html

    ErrorLog logs/www.example.com-error_log

    CustomLog logs/www.example.com-access_log common

    ProxyPass / http://localhost:8080/

    ProxyPassReverse / http://localhost:8080/

</VirtualHost>



위에 처럼 아파치가 설정된 경우에는 /etc/php.ini 에 설정을 따로 해주어야 합니다.


auto_prepend_file = /etc/prepend.php


auto_prepend_file = 이 부분을 찾아서 /etc/prepend.php 를 추가하고 저장합니다.



/etc/prepend.php 생성


<?php

if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {

        $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR'];

}

?>



모듈 재시작


아파치 + 아파치 : # systemctl restart httpd


아파치 + 엔진엑스 : # systemctl restart php-fpm



이제 확인해보세요~


블로그 이미지

iVPS 영은파더♥

가상서버호스팅 VPS 리눅스 서버관리 윈도우 IT

댓글을 달아 주세요