Linux에서 고가용성 역방향 프록시(예: Nginx)를 구성하는 방법

PHPz
풀어 주다: 2023-07-05 08:57:18
원래의
1545명이 탐색했습니다.

Linux에서 고가용성 역방향 프록시(예: Nginx)를 구성하는 방법

요약:
역방향 프록시는 서비스의 로드 균형 조정 및 내결함성을 개선하기 위해 네트워크 아키텍처에서 일반적으로 사용되는 기술입니다. 이 기사에서는 Nginx를 예로 들어 Linux 시스템에서 고가용성 역방향 프록시를 구성하는 방법을 소개합니다.

  1. Install Nginx
    먼저 Linux 시스템에 Nginx를 설치해야 합니다. 설치는 다음 명령으로 수행할 수 있습니다:

    sudo apt-get update
    sudo apt-get install nginx
    로그인 후 복사
  2. 역방향 프록시 구성
    Nginx에서 역방향 프록시를 구성하는 것은 매우 간단합니다. Nginx 구성 파일 /etc/nginx/nginx.conf를 편집하고 http 블록에 다음 콘텐츠를 추가합니다. /etc/nginx/nginx.conf,在http块中添加以下内容:

    http {
     upstream backend {
         server backend1.example.com;
         server backend2.example.com;
         server backend3.example.com;
     }
    
     server {
         listen       80;
         server_name  example.com;
    
         location / {
             proxy_pass  http://backend;
         }
     }
    }
    로그인 후 복사

    上述配置中,我们定义了一个名为backend的upstream块,其中列出了需要代理的后端服务器。server块指定了监听的端口和域名,并将请求转发给backend

  3. 配置负载均衡策略
    在上述配置中,默认使用的是轮询(Round-Robin)的负载均衡策略。即每个请求依次按顺序分配到后端服务器。如果需要更复杂的负载均衡策略,可以根据需要进行配置。
    以下是一些常见的负载均衡策略示例:

a. IP Hash

upstream backend {
    ip_hash;
    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com;
}
로그인 후 복사

IP Hash策略会根据客户端的IP地址将其请求分配到特定的后端服务器,这样可以保持同一个客户端的请求都发送到同一台服务器上。

b. Least Connections

upstream backend {
    least_conn;
    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com;
}
로그인 후 복사

Least Connections策略会将请求发送到当前连接数最少的服务器上,以实现负载均衡。

  1. 重载Nginx配置
    完成配置后,需要重载Nginx配置文件以使更改生效。可以通过以下命令完成操作:

    sudo nginx -s reload
    로그인 후 복사
  2. 高可用性配置
    为了实现高可用性,可以将多个Nginx节点组成一个集群,并使用Keepalived等工具来实现故障转移。以下是一个简单的示例,假设集群中有两个节点:

    sudo apt-get install keepalived
    로그인 후 복사

    在每个节点上,都需要编辑Keepalived的配置文件,通常位于/etc/keepalived/keepalived.conf。以下是一个示例配置:

    global_defs {
     router_id LB_NODE1
    }
    
    vrrp_instance VI_1 {
     state MASTER
     interface eth0
     virtual_router_id 51
     priority 100
     
     virtual_ipaddress {
         192.168.1.100
     }
    }
    로그인 후 복사

    其中,state指定了节点的状态(MASTER或BACKUP),virtual_router_id指定了虚拟路由器ID,virtual_ipaddress

    sudo service keepalived restart
    로그인 후 복사
    위 구성에서는 backend라는 파일을 정의했습니다. > 업스트림 블록에는 프록시가 필요한 백엔드 서버가 나열됩니다. server 블록은 수신 포트와 도메인 이름을 지정하고 요청을 백엔드로 전달합니다.

로드 밸런싱 전략 구성

위 구성에서는 기본적으로 라운드 로빈 로드 밸런싱 전략이 사용됩니다. 즉, 각 요청은 백엔드 서버에 순차적으로 배포됩니다. 보다 복잡한 로드 밸런싱 전략이 필요한 경우 필요에 따라 구성할 수 있습니다.

다음은 로드 밸런싱 전략의 몇 가지 일반적인 예입니다.

🎜a. IP 해시🎜rrreee🎜IP 해시 전략은 클라이언트의 요청을 IP 주소를 기반으로 특정 백엔드 서버에 배포하므로 동일한 클라이언트의 요청이 동일하게 유지됩니다. 섬기는 사람. 🎜🎜b. 최소 연결🎜rrreee🎜 최소 연결 정책은 로드 밸런싱을 달성하기 위해 현재 연결 수가 가장 적은 서버에 요청을 보냅니다. 🎜
    🎜🎜Nginx 구성 다시 로드🎜구성을 완료한 후 변경 사항을 적용하려면 Nginx 구성 파일을 다시 로드해야 합니다. 이 작업은 다음 명령으로 수행할 수 있습니다: 🎜rrreee🎜🎜🎜고가용성 구성🎜고가용성을 달성하려면 여러 Nginx 노드를 클러스터로 구성하고 Keepalived와 같은 도구를 사용하여 장애 조치를 구현할 수 있습니다. 다음은 클러스터에 두 개의 노드가 있다고 가정하는 간단한 예입니다. 🎜rrreee🎜각 노드에서 일반적으로 /etc/keepalived/keepalived.conf에 있는 Keepalived 구성 파일을 편집해야 합니다. 다음은 구성 예시입니다. 🎜rrreee🎜여기서, state는 노드의 상태(MASTER 또는 BACKUP)를 지정하고, virtual_router_id는 가상 라우터 ID를 지정하고, virtual_ipaddress를 지정합니다. code>는 가상 IP 주소를 지정합니다. 🎜🎜🎜🎜마지막으로 Keepalived 서비스를 다시 시작하여 구성을 적용합니다. 🎜rrreee🎜요약: 🎜이 문서에서는 Linux 시스템에서 고가용성 역방향 프록시를 구성하는 단계와 관련 코드 예제를 소개합니다. 이러한 구성을 통해 서비스의 로드 밸런싱 기능과 내결함성을 향상시켜 더 높은 가용성과 안정성을 달성할 수 있습니다. 동시에 Keepalived와 같은 도구를 사용하여 역방향 프록시 장애 조치를 구현하는 방법도 소개합니다. 이 내용이 고가용성 역방향 프록시 시스템을 구축하려는 친구들에게 도움이 되기를 바랍니다. 🎜

위 내용은 Linux에서 고가용성 역방향 프록시(예: Nginx)를 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿