nginx 리버스 프록시 설정

nginx로 리버스 프록시를 설정하는 방법이다. nginx에 포함된 upstream 모듈을 이용하는 것으로 서버가 로드밸런싱 기능을 하도록 할 수 있다. 또는 마스터 서버가 다운됐을 때 백업서버로 연결을 전환하는 것도 할 수 있다. 아래 설정은 마스터 서버가 다운됐을 때 백업서버로 연결을 돌리는 것이다.

    upstream wwwservers {
        #ip_hash;
        least_conn;

        server 192.168.1.101 max_fails=3 fail_timeout=10s;
        server 192.168.1.102 backup;
    }

    server {
        listen       80;
        server_name  www.example.com;

        proxy_redirect          off;
        client_max_body_size    500m;
        client_body_buffer_size 256k;

        location / {
            proxy_pass  http://wwwservers;
            proxy_set_header    Host    $http_host;
            proxy_set_header    X-Real-IP       $remote_addr;
            proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_connect_timeout       90;
            proxy_send_timeout          90;
            proxy_buffers               4 32k;
            proxy_temp_file_write_size  64k;
        }       
    }

위 내용을 nginx.conf 파일 http 블럭 안에 넣어주면 된다. 3대의 테스트 서버에 nginx를 설치하고 1대는 로드밸런서로 나머지 두 대는 웹서버로 세팅하고 테스트했는데 마스터 서버가 다운됐을 때 바로 백업서버로 전환이 되는 걸 확인했다. 또 마스터 서버가 복구되면 다시 마스터 서버로 접속이 전환되는 걸 확인했다.

참고자료
http://blog.jsdelivr.com/2013/01/nginx-load-balancing-basics.html
http://nginx.org/en/docs/http/ngx_http_upstream_module.html

편리

PHP와 MariaDB, jQuery 등을 사용해 게시판, 쇼핑몰 솔루션을 개발합니다. 그누보드5와 영카트5 개발에 참여 했습니다. Linux와 Nginx는 물론 WordPress, Git 등에도 관심이 많습니다. 자전거 타기 및 사진 촬영을 취미로 하고 있습니다.

카카오톡 플러스친구 채팅 : NCUBE.NET

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.