본문 바로가기

Linux

25. CentOS7 : Proxy

1. Proxy

인터넷 초창기에 느린 인터넷 속도로 웹사이트 접속이 원활하지 못한 경우 내부 서버에 웹사이트의 캐시 정보를 저장 후 내부 사용자들에게 서비스

 

클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램을 가리킨다.

 

Proxy: 서버와 클라이언트 사이에 중계기로서 대리로 통신을 수행하는 것

Proxy Server: 중계 기능을 하는 것

 

프록시 서버 중 일부는 프록시 서버에 요청된 내용들을 Cache를 이용하여 저장해 둔다.

따라서, 캐시 안에 있는 정보를 요구하는 요청에 대해서는 원격 서버에 접속하여 데이터를 가져올 필요가 없게 된다.

  • 전송 시간을 절약
  • 불필요하게 외부와의 연결을 하지 않아도 됨
  • 외부와의 트래픽이 줄어듦으로써 네트워크 병목 현상을 방지

1.1. Forward Proxy

 

흔히 말하는 Proxy Server는 Forward Proxy Server를 의미

클라이언트가 서버에 요청을 하면 직접 통신하는 것이 아닌 중간에 Proxy Server를 거쳐 통신하는 것

Client-Server/Server-Client 간의 직접적인 통신을 막아 특정 서버에 대한 제어 설정 또는 IP 추적 방지가 가능

 

1.2. Reverse Proxy

Load Balancing의 원조

 

관련 클라이언트들을 위해 임의의 서버에 접속하는 중간 매개체인 포워드 프록시(forward proxy)와는 반대로, 리버스 프록시는 관련 서버들을 위해 임의의 클라이언트가 해당 서버에 접속하는 중간 매개체

 

클라이언트가 접속 시 프록시 서버에서 부하 분산을 시킴. 이때 사용되는 알고리즘이 몇 개있는데 Round Robin 방식을 많이 사용

참고) Round Robin: 시분할 시스템을 위해 설계된 선점형 스케줄링의 하나로서, 프로세스들 사이에 우선순위를 두지 않고, 순서대로 시간단위(Time Quantum)로 CPU를 할당하는 방식의 CPU 스케줄링 알고리즘

 

Reverse Proxy 장점

  • 본래 서버의 IP 주소를 노출시킬 필요가 없어 보안에 좋음
  • 캐싱 기능과 트래픽 분산으로 성능 향상

 

2. Proxy Server 구성하기

구성도

 

2.1. 네트워크 카드 host-only로 변경 (CentOS7-1, CentOS7-2, CentOS7-3)

네트워크 카드를 host-only로 변경해도 되지만, Xshell 접속을 위해 네트워크 카드를 추가함

  • CentOS7-1, CentOS7-2, CentOS7-3 모두 동일하게 진행

※ 네트워크 카드 추가

 

 

※ Host-only 설정

 

※ ip a 명령어 입력할여 네트워크 카드 번호 확인

 

 네트워크 설정 파일 복사

# cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens36

 

※ 설정 파일 수정

# vi /etc/sysconfig/network-scripts/ifcfg-ens36

 

CentOS7-1 / CentOS7-2 / CentOS7-3

※ 네트워크 재시작 후 IP 확인

 

설정 완료 되었으면 ping 테스트 진행 (3대 모두)

 

2.2. 아파치 웹 서버 설치 및 설정(CentOS7-2, CentOS7-3)

  • CentOS7-2, CentOS7-3 모두 동일하게 진행

 

※ 아파치 웹 서버 설치

# yum install -y httpd

 

 /var/www/html/index.html 파일 수정

CentOS7-2 / CentOS7-3

 

※ 방화벽 오픈

 

아파치 웹 서버 실행

 

※ url 내용 확인

 

2.3. Proxy Server 설정 (CentOS7-1)

haproxy 설치

 

 /etc/haproxy/haproxy.cfg 파일 수정

  • port 및 IP 설정
  • 웹은 2개밖에 없으므로 나머지는 주석 처리

 

haproxy 서비스 시작

 

 

80 포트 오픈

 

2.3. Test

※ 웹 브라우저에서 접속 시 웹1, 웹2 번갈아 가면서 접속 됨

 

 

2.4. 포트 변경

기존 80이었던 Backend Service의 포트를 60080으로 변경해보자.

 

※ /etc/httpd/conf/httpd.conf 파일 수정 (CentOS7-2, CentOS7-3)

 

방화벽 오픈 (CentOS7-2, CentOS7-3)

 

아파치 웹서버 재시작 (CentOS7-2, CentOS7-3)

 

※ /etc/haproxy/haproxy.cfg 파일 수정 (CentOS7-1)

 

※ haproxy 재시작 (CentOS7-1)

 

※ 방화벽 오픈 (CentOS7-1)

 

2.5. 포트 변경 Test

※ 웹 브라우저에서 접속 시 웹1, 웹2 번갈아 가면서 접속 됨

 

 


Reference.

 

프록시 서버 - 위키백과, 우리 모두의 백과사전

 

ko.wikipedia.org

 

 

 

[Infra] 리버스 프록시(reverse proxy) 서버 개념

리버스 프록시(reverse proxy) 서버 개념

losskatsu.github.io

 

 

 

Forward Proxy와 Reverse Proxy 차이점

이번 포스팅은 Proxy의 개념과 Forward Proxy와 Reverse Proxy의 차이점을 알아보겠습니다. 1. Proxy 프록시 서버를 위키 백과에서 찾아보면 아래와 같은 의미를 찾아볼 수 있습니다. 프록시 서버는 클라이

firework-ham.tistory.com

 

 

 

라운드 로빈 스케줄링 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전.

ko.wikipedia.org