>  기사  >  운영 및 유지보수  >  Nginx 역방향 프록시 구성을 구현하는 방법

Nginx 역방향 프록시 구성을 구현하는 방법

王林
王林원래의
2023-11-08 15:07:531041검색

Nginx 역방향 프록시 구성을 구현하는 방법

Nginx 역방향 프록시 구성을 구현하려면 특정 코드 예제가 필요합니다.

Nginx는 고성능 오픈 소스 웹 서버이자 역방향 프록시 서버입니다. 실제 응용 프로그램에서는 Nginx를 역방향 프록시로 사용하여 로드 밸런싱, 캐싱, SSL 터미널 프록시 및 기타 기능을 구현하는 경우가 많습니다. 이 기사에서는 Nginx의 역방향 프록시를 구성하는 방법을 소개하고 특정 코드 예제를 제공합니다.

  1. Install Nginx

먼저 Nginx를 설치해야 합니다. 패키지 관리자(apt-get, yum 등)를 통해 설치하거나 공식 홈페이지에서 소스코드를 다운로드해 컴파일하고 설치할 수 있다. Ubuntu를 예로 들어 apt-get을 통해 Nginx를 설치합니다.

sudo apt-get update
sudo apt-get install nginx
  1. 역방향 프록시 구성

Nginx 구성 파일에서 역방향 프록시를 구성해야 합니다. Nginx 구성 파일은 일반적으로 /etc/nginx/nginx.conf 또는 /etc/nginx/conf.d/default.conf에 있습니다. 구성 파일을 수정하기 전에 원래 구성을 백업하는 것이 좋습니다.

구성 파일을 열고 http 노드를 찾은 후 노드 아래에 다음 구성을 추가합니다.

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://backend_server;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

위 구성에서 listening은 Nginx가 수신 대기하는 포트(예: 80)를 지정하고 server_name은 다음의 도메인 이름을 지정합니다. 역방향 프록시(예: example.com) 위치 노드에서 역방향 프록시의 주소(예: http://backend_server)를 설정하고 Proxy_set_header 지시어를 사용하여 일부 HTTP 요청 헤더 정보를 전달합니다.

  1. 백엔드 서버 구성

구성 파일에서는 http://backend_server를 역방향 프록시 주소로 사용합니다. 여기서 backend_server를 실제 백엔드 서버 주소로 바꿔야 합니다.

백엔드 서버 주소를 지정하는 방법에는 여러 가지가 있습니다. 다음은 두 가지 일반적인 방법입니다.

A. IP 주소와 포트

proxy_pass http://192.168.1.100:8000;

B를 사용합니다. 도메인 이름과 포트

proxy_pass http://backend.example.com:8000;
  1. Restart Nginx

구성을 완료한 후 구성 파일을 저장하고 Nginx를 다시 시작합니다. 구성 적용 :

sudo service nginx restart
  1. 역방향 프록시 확인

이제 Nginx가 수신 대기 중인 포트(예: 80)에 액세스하여 역방향 프록시가 작동하는지 확인할 수 있습니다. 브라우저나 컬 명령을 통해 http://example.com에 액세스하면 백엔드 서버에서 반환된 콘텐츠를 가져올 수 있습니다.

  1. 고급 구성

Nginx는 기본 역방향 프록시 구성 외에도 역방향 프록시의 성능과 기능을 더욱 최적화하기 위한 다양한 고급 구성 옵션도 제공합니다. 다음은 일반적으로 사용되는 몇 가지 고급 구성 예입니다.

A. 로드 밸런싱

upstream backend_servers {
    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com;
}

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://backend_servers;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

B. 캐싱

http {
    ...

    proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m;

    server {
        listen 80;
        server_name example.com;

        location / {
            proxy_pass http://backend_server;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;

            proxy_cache my_cache;
            proxy_cache_valid 200 302 60m;
            proxy_cache_valid 404 1m;
        }
    }

    ...
}

C. SSL 터미널 프록시

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    location / {
        proxy_pass http://backend_server;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

위 예는 Nginx 역방향 프록시 구성의 기본 사용법과 일반적인 시나리오일 뿐입니다. 철저하지 않습니다. 복잡한 애플리케이션 시나리오의 경우 필요에 따라 Nginx 구성 항목 및 모듈을 심층적으로 이해하고 강력한 기능을 유연하게 사용하여 필요한 프록시 및 최적화 전략을 구현할 수 있습니다.

요약

이 문서에서는 Nginx 역방향 프록시 구성을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. Nginx의 역방향 프록시를 통해 로드 밸런싱, 캐싱, SSL 터미널 프록시 및 기타 기능을 구현하여 웹 애플리케이션의 성능과 안정성을 향상시킬 수 있습니다. 이 글이 Nginx를 처음 접하는 독자들에게 도움이 되기를 바랍니다.

위 내용은 Nginx 역방향 프록시 구성을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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