>  기사  >  운영 및 유지보수  >  Nginx 리버스 프록시는 도메인 이름을 설정하고 전달을 우아하게 구현합니다.

Nginx 리버스 프록시는 도메인 이름을 설정하고 전달을 우아하게 구현합니다.

WBOY
WBOY원래의
2023-07-04 18:49:379110검색

Nginx 역방향 프록시는 도메인 이름을 설정하고 전달을 우아하게 구현합니다.

개요
웹 개발에서 요청을 전달하기 위해 프록시가 필요한 상황에 자주 직면합니다. 고성능 웹 서버인 Nginx는 역방향 프록시를 통해 요청을 전달할 수 있으므로 효율적인 로드 밸런싱 및 동적 구성을 달성할 수 있습니다.

Nginx 리버스 프록시의 기본 원리는 클라이언트의 요청을 Nginx 서버로 보내고, Nginx 서버는 요청을 실제로 처리하는 백엔드 서버로 전달하는 것입니다. 도메인 이름을 설정하면 서로 다른 도메인 이름의 요청에 대해 서로 다른 프록시 전달 규칙을 구현할 수 있습니다.

도메인 이름 설정
도메인 이름의 프록시 전달을 구현하려면 먼저 도메인 이름 확인을 구성해야 합니다. 전달해야 하는 두 개의 도메인 이름, 즉 www.example1.com과 www.example2.com이 있다고 가정합니다. 이 두 도메인 이름을 DNS 서비스 공급자의 콘솔에서 Nginx 서버의 IP 주소로 확인할 수 있습니다.

다음으로 Nginx 구성 파일에서 도메인 이름에 대한 프록시 전달 규칙을 설정해야 합니다. 일반적으로 /etc/nginx/nginx.conf에 있는 Nginx 구성 파일을 열고 서버 블록을 찾은 다음 서버 블록에서 해당 도메인 이름과 전달 규칙을 구성합니다.

샘플 코드는 다음과 같습니다.

server {
    listen 80;
    server_name www.example1.com;

    location / {
        proxy_pass http://backend1;
        proxy_set_header Host $host;
    }
}

server {
    listen 80;
    server_name www.example2.com;

    location / {
        proxy_pass http://backend2;
        proxy_set_header Host $host;
    }
}

위 코드에서는 먼저 서버 블록을 정의하고, 포트 80을 수신하도록 listening 명령을 설정하고, server_name 명령은 도메인 이름을 www.example1.com으로 설정합니다. 위치 블록의 구성 지시어인 Proxy_pass는 요청 전달 대상이 http://backend1임을 지정합니다. Proxy_set_header 지시어는 요청 헤더의 Host 필드를 $host로 설정하여 요청의 신뢰성을 유지합니다.

마찬가지로 다른 서버 블록을 추가하고 server_name을 www.example2.com으로 설정하고 Proxy_pass를 http://backend2로 설정합니다.

전달 대상 구성
위 구성에서는 backend1과 backend2를 전달 대상으로 사용했습니다. 이 두 대상은 도메인 이름, IP 주소 또는 UNIX 도메인 소켓일 수 있는 백엔드 서버의 주소를 참조합니다.

이 두 전달 대상을 실제로 요청을 처리하는 백엔드 서버와 연결하려면 Nginx 구성 파일의 http 블록 내에 업스트림 블록을 추가해야 합니다. 샘플 코드는 다음과 같습니다.

http {
    upstream backend1 {
        server backend1.example.com;
    }
    upstream backend2 {
        server backend2.example.com;
    }
}

위 코드에서 우리는 두 개의 업스트림 블록은 서버 지시어를 통해 백엔드 서버의 주소를 backend1 및 backend2와 연결하도록 정의됩니다. 그 중 backend1.example.com과 backend2.example.com은 실제로 요청을 처리하는 백엔드 서버의 주소이다.

Restart Nginx
도메인 이름과 전달 대상 구성을 완료한 후 Nginx 서버를 다시 시작해야 구성이 적용됩니다. 다시 시작하려면 터미널에 다음 명령을 입력하세요.

sudo service nginx restart

그런 다음 www.example1.com 및 www.example2.com을 방문하여 전달이 올바르게 설정되었는지 테스트할 수 있습니다.

요약
도메인 이름과 전달 규칙을 설정하여 Nginx의 역방향 프록시를 구현하고 요청을 다른 백엔드 서버로 전달할 수 있습니다. 이를 통해 전달 규칙을 유연하게 구성하고 효율적인 로드 밸런싱 및 동적 구성을 달성할 수 있습니다. 동시에 Nginx는 역방향 프록시의 기능을 더욱 확장하고 더 많은 요구 사항을 충족할 수 있는 풍부한 모듈과 기능도 제공합니다.

위 내용은 Nginx 리버스 프록시는 도메인 이름을 설정하고 전달을 우아하게 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.