Nginx Proxy 설정 방법
Reverse Proxy란?
표준 프록시 서버는 개인정보를 제공하거나 콘텐츠를 필터링하여 클라이언트를 대신하여 작동합니다. 역방향 프록시는 서버를 대신하여 작동하여 트래픽을 가로채서 별도의 서버로 라우팅 합니다. 오늘은 Nginx 웹서버에 reverse proxy 설정하는 방법을 알아보도록 하겠습니다.
리버스 프록시를 설치하려는 데는 여러 가지 이유가 있습니다. 주된 이유 중 하나는 개인 정보 보호입니다.
서버가 여러 대 있는 경우 역방향 프록시를 사용하면 서버 간의 로드 균형을 조정하고 성능을 향상할 수 있습니다. 역방향 프록시는 클라이언트에 대한 단일 연락 지점을 제공하므로 여러 서버에 걸쳐 로깅 및 보고를 중앙 집중화할 수 있습니다.
Nginx는 정적 콘텐츠를 신속하게 제공하고 동적 콘텐츠 요청을 Apache 서버에 전달하여 성능을 향상시킬 수 있습니다.
이 가이드는 시스템에 Nginx 역방향 프록시를 설치하고 구성하는 데 도움이 됩니다.
nginx를 역방향 프록시로 설정 및 사용
전제조건
- Apache, PHP 및 방화벽을 갖춘 Linux 서버
- sudo 액세스 권한이 있는 루트 사용자에 대한 액세스
- Linux 명령줄 또는 터미널( Ubuntu의 경우 Ctrl – Alt – T , CentOS의 경우 Alt – F2 )
- 패키지 관리자(예: APT)
Nginx 역방향 프록시 설정
1단계: 기본 리포지토리에서 Nginx 설치
터미널 창을 열고 다음을 입력합니다.
sudo apt-get update
패키지 관리자가 소프트웨어 목록 새로 고침을 완료하도록 허용한 후 다음을 입력합니다.
sudo apt-get install nginx
프로세스가 완료되도록 허용합니다.
참고: 이는 CentOS 또는 Ubuntu 에 Nginx를 설치하는 가장 쉬운 방법이지만 최신 안정 릴리스를 로드하지 못할 수도 있습니다. Nginx 소프트웨어 리포지토리에서 추가하고 설치하려면 2단계로 이동하세요.
2단계(선택 사항): 공식 저장소에서 Nginx 설치
보안 키 추가
터미널 창에서 다음을 입력합니다.
sudo wget https://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key
그러면 정품 소프트웨어를 다운로드하고 있는지 확인하는 Nginx용 서명 키가 다운로드됩니다.
편집을 위해 source.list 파일 열기
터미널에서 다음을 입력합니다.
sudo vi /etc/apt/sources.list
우분투 소스 목록 파일
리포지토리 목록에 Nginx 소스 추가
/etc/apt/sources.list방금 연 파일에 다음 줄을 입력합니다.
deb https://nginx.org/packages/mainline/debian/ <CODENAME> nginx
deb-src https://nginx.org/packages/mainline/debian/ <CODENAME> nginx
<CODENAME>Debian 배포판의 코드명으로 바꾸시면 됩니다.
파일을 저장 하고 종료합니다.
선택적 Nginx 구성 옵션
프록시 버퍼 구성
기본적으로 Nginx는 프록시하는 서버의 트래픽을 버퍼링 합니다. 클라이언트가 완전한 응답 전송을 완료할 때까지 서버 응답이 전송되지 않으므로 버퍼는 서버 성능을 향상합니다.
버퍼를 끄려면 5단계의 구성 파일을 엽니다. location/section 아래에 다음을 추가합니다.
proxy_buffering off;
요청 헤더
헤더는 요청 또는 클라이언트에 대한 서버 정보를 제공합니다.
Nginx는 두 개의 헤더 필드를 재정의합니다: host는에 대해 구성되고 $proxy_host는 에 connection대해 구성됩니다 close. 해당 헤더를 사용하는 경우 구성 파일의 동작을 변경해야 합니다.
헤더 문자열이 비어 있으면 Nginx는 해당 필드를 제거합니다.
Nginx가 헤더를 처리하는 방식을 변경하려면 구성 파일에서 다음 명령을 사용하십시오.
location / {
proxy_set_header Host $host;
}
이 예는 Nginx에게 host변수를 설정하도록 지시합니다 $host.
헤더 필드가 프록시 서버로 전달되는 것을 방지하려면 다음과 같이 빈 문자열을 사용하십시오.
location / {
proxy_set_header header-variable "";
}
로드 밸런싱
구성 파일을 사용하여 트래픽을 여러 서버로 라우팅 할 수 있습니다. 이 구성을 사용하려면 구성 파일이 다음 예와 유사해야 합니다.
http {
server {
proxy_pass http://my_server
}
}
즉, HTTP 구성이 5단계의 서버 구성 외부로 이동합니다.
서버 그룹의 이름을 생성하려면 다음 upstream명령을 사용하면 됩니다.
http {
upstream server_group {
server my.server1.com weight=3;
server my.server2.com;
}
server {
location / {
proxy_pass http://server_group;
}
}
}
이 지정에는 두 대의 서버가 필요하며 my.server1.com 이를 my.server2.com 함께 번들로 묶습니다. Nginx는 해당 서버 그룹을 이름으로 프락시 합니다 http://server_group. 원하는 대로 이름을 바꿀 수 있습니다.
본문 내용의 예제는 weight명령을 사용하여 3개의 요청을 라우팅 한 my.server1.com다음 1개의 요청을 로 라우팅합니다 my.server2.com. 이는 서버 간에 클라이언트 로드 균형을 수동으로 조정하는 옵션 중 하나입니다. 또 다른 방법은 단순히 지정을 생략하는 것입니다. 그러면 Nginx는 나열된 서버 간에 요청을 균등하게 라운드 로빈 합니다.
댓글