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대는 로드밸런서로 나머지 두 대는 웹서버로 세팅하고 테스트했는데 마스터 서버가 다운됐을 때 바로 백업서버로 전환이 되는 걸 확인했다. 또 마스터 서버가 복구되면 다시 마스터 서버로 접속이 전환되는 걸 확인했다.