프로그래밍/서버, DBMS

동일한 요청을 여러 서버에 Broadcasting 해주는 NginX mirror

포도알77 2021. 11. 27. 09:34

1.  하나의 요청을 여러 서버가 알아야 할 때

 

 아래의 그림과 같이 한 서버에 요청을 릴레이 하면서 또 다른 서버가 해당 요청을 알아야 할때 사용할 수 있는 mirror 기능이다.

 

2. NginX conf

location / {
	mirror /mirror;
	proxy_pass http://location.to;
}

location /mirror {
	internal;
	proxy_pass http://location.to.mirror;
}

 location으로 /mirror을 등록하고, internal 지시어를 통하여 해당 path는 내부적으로만 접근할 수 있게 강제한다. (외부에서 도메인이나 ip타고 들어오는 경우엔 접근할 수 없다는 의미)

 그리고 해당 path에 proxy_pass를 설정한 다음 등록을 원하는 location에 mirror로 등록하면 된다.

 

 이렇게 되면 /으로 오는 요청은 항상 location.to, location.to.mirror에 모두 전달되지만, location.to.mirro 응답은 nginx단에서 버려진다. 즉, 웹 서버 본연의 요청-응답 모델에 어떠한 영향 없이 스니핑이 가능한 상태가 된다.

 

3. 어디다 쓰지?

 이미 이 글을 검색해서 들어왔다면 원하는 쓰임새가 있을 것이다. 나의 경우 데이터 전달시 두 서버에 전달하기 위하여 mirror를 활용했다.

 

페이스북으로 공유카카오톡으로 공유카카오스토리로 공유트위터로 공유URL 복사