회사 개요 #
여러 애플리케이션 인스턴스 간에 부하를 분산하면 과부하와 지연 시간을 줄이고 정적 리소스를 캐싱하여 전달을 늘려 성능을 개선하는 좋은 방법입니다.
Nginx는 웹 서비스에서 훌륭한 역할을 하지만, 플랫폼 자체의 복잡성이 높습니다. 트래픽이 증가함에 따라 보안을 희생하지 않고 레이어 4 및 레이어 7 트래픽의 로드 밸런싱을 수행하기가 더욱 어려워집니다. 따라서 사용하기 쉬운 UI를 통해 비즈니스 애플리케이션을 제어할 수 있는 고급 기능을 갖춘 로드 밸런서가 필요합니다.
이 문서에서는 Nginx 로드 밸런서 구성을 전송하는 방법에 대해 설명합니다. RELIANOID ADC.
사전 조건 #
이 가이드를 따르려면 다음 기준을 충족해야 합니다.
- 인스턴스 RELIANOID 해당 기기는 워크스테이션이나 클라우드 플랫폼에 설치해야 합니다. 평가 요청 아직 인스턴스가 설치되지 않은 경우.
- 웹 패널에 액세스할 수 있어야 합니다. 액세스 권한이 없는 경우 다음 간단한 단계를 따르세요. 설치 설명서.
- Nginx는 여러분에게 쉬운 솔루션이지만, 로드 밸런싱 기능에 만족하지 못하시는가요? 그렇다면 다음이 필요합니다. RELIANOID 들어가다.
- 가상 서버는 백엔드 서버로 트래픽을 분산하는 데 필수적입니다. 아직 생성하지 않으셨다면 이 가이드를 참조하세요. 레이어 4 및 레이어 7 가상 서버(Farm) 생성
기본 컨셉 #
상류: 업스트림(upstream) 지시어는 웹 애플리케이션을 호스팅하는 서버 클러스터를 정의합니다. 일반적으로 업스트림은 http 컨텍스트 내에서 정의됩니다. RELIANOID ADC, 서비스 섹션에는 호스트 서버를 관리하기 위한 백엔드 하위 섹션이 포함되어 있습니다.
듣다: 수신 옵션은 Nginx가 웹에서 들어오는 트래픽을 수신할 포트를 정의합니다. RELIANOID ~을 사용하다 가상 포트 들어오는 트래픽을 수신하려면 농장.
위치 : 위치 컨텍스트를 사용하면 HTML 파일에서 데이터를 검색할 디렉토리에 대한 지침을 제공할 수 있습니다.
프록시_패스: 이 지시어는 프록시 서버의 위치를 지정할 때 사용됩니다. 일반적으로 위치는 가치 상류 지침에 할당되었습니다. 유사한 개념은 RELIANOID 하는 농장백엔드 서버가 포함된 서비스에 연결된 IP 주소와 포트를 정의하는 곳입니다.
섬기는 사람: 이 지시어는 IPv4 또는 IPv6 형식의 IP 주소를 사용하여 애플리케이션을 호스팅하는 서버를 지정합니다. 서버 블록은 다음을 정의하는 곳입니다. 위치 지시, 경청자및 들 지시어. 서버를 정의할 수 있습니다. RELIANOID 를 통해 백엔드 안내
ssl_ciphers 및 ssl_protocols: ssl_ciphers 및 ssl_protocol 지시어는 연결을 가장 강력하거나 최신 SSL/TLS 버전으로 제한할 때 사용됩니다. 이러한 프로토콜에는 TLSV1과 TLSV2가 포함됩니다. nginx의 기본 암호는 다음과 같습니다. 높음:!aNULL:!MD5. 암호를 사용하고 SSL 프로토콜을 사용자 정의하려면 RELIANOIDHTTPS 리스너를 사용해야 합니다. HTTPS 매개변수 그 농장의 글로벌 설정 내에서.
구성 예: 스티키 세션 활성화 #
세션 지속성(Sticky Session)은 부하 분산에서 클라이언트의 요청이 세션 기간 동안 클러스터 내 동일한 서버로 전송되도록 하는 기술입니다. 이는 상태를 유지하거나 파일이나 데이터와 같은 리소스를 세션 기간 동안 클라이언트가 사용할 수 있도록 하는 데 자주 사용됩니다. 쿠키 또는 IP 주소 선호도(affinity)를 사용하는 등 세션 지속성을 구현하는 여러 가지 방법이 있습니다. 사용되는 방법은 애플리케이션의 특정 요구 사항과 부하 분산 아키텍처에 따라 달라집니다.
Nginx 구성 #
Nginx는 세션 지속성을 활성화하는 데 주로 두 가지 방법을 사용합니다. 해시_아이피 부하 분산 방법 및 사용 끈적끈적한 쿠키.
해시_ip: hash_ip 부하 분산 방식은 목적지 및 소스 IP 주소를 획득하여 이를 사용하여 설정된 연결에 대한 고유한 ID를 형성합니다.
업스트림 백엔드 서버 { hash_ip; 서버 192.168.0.112; 서버 192.168.0.115; }
끈적끈적한 쿠키: 또한 다음을 정의하여 스티키 쿠키를 사용할 수도 있습니다. 끈적한 쿠키 상류 컨텍스트 내의 옵션입니다.
업스트림 백엔드 서버 { 서버 192.168.0.112; 서버 192.168.0.116; 스티키 쿠키 zensessionid 만료=2h 도메인=.example.com 경로="/"; }
젠세션아이디 쿠키와 관련 서버를 고유하게 식별합니다. 위 구성에서 쿠키는 만료 2 시간.
RELIANOID 구성 #
쿠키 지속성을 활성화하려면 다음을 사용하세요. RELIANOID 로드 밸런서:
- We Buy Orders 신청서를 클릭하세요. LSLB > 농장 그리고 클릭 편집 http 팜의 아이콘입니다.
- 로 이동 서비스 탭.
- 스크롤하여 도달할 때까지 고집 안내
- 클라이언트의 IP 주소를 사용하여 지속성을 활성화하려면 지속성을 선택하십시오. IP: 클라이언트 주소.
- 쿠키를 사용하여 세션 지속성을 활성화하려면 4단계를 무시하고 그대로 두십시오. 고집 필드에서 지속성 없음.
- 토글 쿠키 인서트 버튼을 누르고 입력하세요 name, 도메인, 통로, 그리고 수명(Time to Live)TTL) 초 단위.
- 설정을 업데이트하려면 다음을 클릭하세요. 신청 버튼을 클릭합니다.
구성 예: 리디렉션 규칙 만들기 #
리디렉션 규칙은 웹 페이지를 다른 웹 페이지로 자동으로 리디렉션하는 데 사용됩니다. 웹사이트의 구조나 콘텐츠가 변경되었거나 페이지가 새 위치로 이동했을 때 자주 사용됩니다. 리디렉션 규칙은 사용자와 검색 엔진이 올바른 페이지로 이동하도록 하고 링크가 끊어지는 것을 방지하는 데 사용할 수 있습니다. 301 리디렉션, 302 리디렉션, 메타 새로고침 리디렉션 등 여러 유형의 리디렉션을 사용할 수 있습니다. 사용되는 리디렉션 유형은 웹사이트의 구체적인 요구 사항과 리디렉션 이유에 따라 달라집니다.
Nginx 구성 #
리디렉션 규칙을 생성하려면 서버 또는 위치 컨텍스트 내에 return 지시어를 선언합니다. return 지시어는 사용자를 한 URL에서 다른 URL로 리디렉션하거나, 보안되지 않은 채널에서 보안 서버로 리디렉션할 때 사용됩니다.
Nginx 리디렉션 규칙은 다음 구문을 따릅니다.
반환 ( 301 | 302 | 303 | 307 ) 리디렉트 URL;
보안되지 않은 http 위치에서 보안된 https 위치로 사용자를 리디렉션할 때의 샘플 구성은 다음과 같습니다.
서버 { # 사용자를 HTTPS로 리디렉션합니다. listen 80; 서버 이름 test.relianoid.com www.test.relianoid.com; return 301 https://www.test.relianoid.com$request_uri; }
The $요청_uri 이 옵션을 사용하면 경로가 변경되더라도 동일한 도메인의 모든 http 트래픽이 보안 https로 리디렉션됩니다.
RELIANOID 구성 #
비슷한 결과를 얻으려면 RELIANOID ADC.
- 두 개의 농장이 실행되고 있는지 확인하십시오. HTTP HTTPS. 이 기사를 참조하세요. 레이어 4 및 레이어 로드 팜을 만드는 방법
- We Buy Orders 신청서를 클릭하세요. LSLB >> 농장 를 클릭하고 편집 https 팜의 아이콘.
- 위치 찾기 서비스 탭을 클릭하고 구성된 서비스를 열어 편집하세요. 서비스가 없으면 새로운 서비스 버튼을 클릭하고 하나 만들어 보세요.
- 스크롤하여 도달할 때까지 리디렉션 섹션 및 토글 켜기 리디렉션 활성화.
- 리디렉션 유형을 선택하세요 추가, 리디렉트 코드 301 리디렉션할 전체 URL을 작성하세요. 이 예에서는 http://10.0.0.18
- 다음을 클릭하여 구성을 업데이트합니다. 신청 버튼을 클릭합니다.
예제 구성: 헤더 규칙 다시 작성 #
HTTP 헤더는 호스트와 클라이언트가 요청 쿼리 외에도 추가 정보를 공유하는 데 필수적입니다. 이러한 헤더를 통해 클라이언트는 원하는 언어로 리소스에 접근하고 자신의 기기에 최적화된 웹 페이지에 접근할 수 있습니다. 웹 서버는 이 정보를 사용하여 쿠키 헤더를 통해 클라이언트에게 제공할 정보 유형을 최적화할 수 있습니다.
안타깝게도 응답 헤더를 많이 사용하면 해커가 악용할 수 있는 민감한 정보가 많이 노출될 수 있습니다. 따라서 신뢰할 수 없는 헤더를 제거하거나 일부 콘텐츠를 수정하는 것이 중요합니다. 이렇게 하면 크로스 사이트 스크립팅과 같은 악의적인 공격을 방지하는 데 도움이 됩니다. X-XSS-보호.
Nginx 구성 #
Nginx는 헤더를 수정하고 추가하는 두 가지 지시문을 제공합니다. 여기에는 다음이 포함됩니다. add_header 더 많은_세트_헤더위치 블록 내부에서 다음 위치 헤더를 사용하세요.
예제 구성을 사용하여 add_header nginx에서.
위치 / { ... add_header 서버 "serverName"; ... }
더 많은_세트_헤더 Nginx에 기본적으로 설치되어 있지 않으므로 사용자는 일반적으로 nginx를 컴파일하기 전에 이 플러그인을 수동으로 설치합니다.
예제 구성을 사용하여 더 많은_세트_헤더.
위치 /{ ... more_set_headers 서버 "serverName"; ... }
RELIANOID 구성 #
- 먼저, LSLB>>농장 그리고 선택 HTTP 어떤 농장의 규칙을 정하고 싶은지 알려주세요.
- $XNUMX Million 미만 글로벌 설정에서 "계정 정보"에서 탭.
- 내 "계정 정보"에서, 선택하세요 사용 내 옵션 위치 헤더 다시 쓰기 규칙.
- 다음을 클릭하여 구성을 업데이트합니다. 신청 버튼을 클릭합니다.
- 헤더 섹션으로 스크롤하여 클릭하세요. 규칙 만들기 버튼을 클릭합니다.
- 내 타입 드롭다운 옵션에서 애플리케이션에 맞는 옵션을 선택하세요. 이 예에서는 응답: 헤더를 추가하세요.
- 값을 수정할 헤더를 입력하세요. 이 예에서는 값을 변경하겠습니다. 서버 헤더.
- 구성을 클릭하여 저장하세요. 신청 버튼을 클릭합니다.
- 다시 시작 구성이 적용되려면 팜으로 이동해야 합니다.
추가 자료 #
Let's encrypt 프로그램을 사용하여 SSL 인증서를 자동 생성합니다.
데이터링크/업링크 로드 밸런싱 RELIANOID ADC.
DNS 로드 밸런싱 RELIANOID ADC.
DDoS 공격으로부터 보호합니다.
Relianoid ADC의 애플리케이션, 상태 및 네트워크 모니터링.
웹 애플리케이션 방화벽 구성.
로드 밸런서에 대한 SSL 인증서를 구성합니다.



