>  기사  >  운영 및 유지보수  >  HTTP 요청의 역방향 프록시 캐싱을 위해 Nginx를 사용하는 방법

HTTP 요청의 역방향 프록시 캐싱을 위해 Nginx를 사용하는 방법

王林
王林원래의
2023-08-02 22:58:451019검색

HTTP 요청의 역방향 프록시 캐싱을 위해 Nginx를 사용하는 방법

Nginx는 고성능 오픈 소스 웹 서버 소프트웨어로 정적 리소스 요청을 처리하는 웹 서버 역할을 할 뿐만 아니라 HTTP 요청에 대한 역방향 프록시도 수행할 수 있습니다. 역방향 프록시는 처리를 위해 클라이언트 요청을 여러 백엔드 서버로 전달하는 데 도움이 되며 캐싱을 통해 응답 속도를 향상시킬 수 있습니다. 이 기사에서는 Nginx에서 역방향 프록시 캐시를 구성하는 방법을 소개합니다.

  1. Install Nginx
    먼저 Nginx 서버를 설치해야 합니다. Linux 환경에서는 패키지 관리자를 통해 설치할 수 있습니다. Debian/Ubuntu를 예로 들어 다음 명령을 실행합니다:

    sudo apt update
    sudo apt install nginx
  2. 역방향 프록시 캐시 구성
    설치가 완료된 후 Nginx 구성 파일을 편집하여 역방향 프록시 캐시를 구성해야 합니다. 기본 구성 파일은 /etc/nginx/nginx.conf에 있습니다. 텍스트 편집기로 파일을 열고 http{} 블록을 찾으세요. /etc/nginx/nginx.conf。使用文本编辑器打开该文件,找到http{}块。

http{}块中添加以下配置:

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

其中,/path/to/cache是缓存路径,可以根据实际情况进行修改。levels=1:2表示缓存目录的层级。keys_zone=my_cache:10m表示为缓存分配10M的内存,用于存储缓存的元数据。max_size=10g表示缓存的最大大小为10G。inactive=60m表示缓存文件在60分钟没有被访问时会被认为是过期的。

然后,在server{}块内添加以下配置:

proxy_cache my_cache;
proxy_cache_valid 200 302 1h;
proxy_cache_valid 301 404 10m;
proxy_cache_use_stale error timeout updating http_500 http_503;

其中,proxy_cache my_cache表示启用名为my_cache的缓存。proxy_cache_valid用于配置不同状态码的缓存有效期时间,例如200和302状态码的请求缓存有效期为1小时。proxy_cache_use_stale用于指定当后端服务器出现错误或超时时,是否使用过期的缓存作为响应。

  1. 配置反向代理
    在完成了缓存的配置后,我们需要配置反向代理。在server{}块内,添加以下配置:

    location / {
     proxy_pass http://backend_server;
     proxy_set_header Host $host;
     proxy_cache_bypass $http_cache_control;
     proxy_cache_key $uri$is_args$args;
    }

    其中,proxy_pass指定了后端服务器的地址。proxy_set_header用于设置代理请求中的头信息,这里是将请求的host头设置为当前主机。proxy_cache_bypass用于指定哪些请求不使用缓存,这里是根据请求头中的cache-control来决定。proxy_cache_key

  2. http{} 블록에 다음 구성을 추가하세요.
  3. sudo systemctl restart nginx

    그 중 /path/to/cache는 캐시 경로이며 다음에 따라 수정할 수 있습니다. 실제 상황. levels=1:2는 캐시 디렉터리의 수준을 나타냅니다. keys_zone=my_cache:10m은 캐시 메타데이터를 저장하기 위해 캐시에 10M의 메모리를 할당하는 것을 의미합니다. max_size=10g는 캐시의 최대 크기가 10G임을 나타냅니다. inactive=60m은 캐시 파일이 60분 동안 액세스되지 않으면 만료된 것으로 간주된다는 의미입니다.

    그런 다음 server{} 블록 내에 다음 구성을 추가합니다.

    rrreee

    여기서 proxy_cache my_cachemy_cache라는 캐시를 활성화한다는 의미입니다. . proxy_cache_valid는 다양한 상태 코드의 캐시 유효 기간을 구성하는 데 사용됩니다. 예를 들어 200 및 302 상태 코드의 요청 캐시 유효 기간은 1시간입니다. proxy_cache_use_stale은 백엔드 서버에서 오류나 시간 초과가 발생할 때 만료된 캐시를 응답으로 사용할지 여부를 지정하는 데 사용됩니다.
    1. 역방향 프록시 구성
      캐시 구성을 완료한 후 역방향 프록시를 구성해야 합니다. server{} 블록 내에 다음 구성을 추가합니다.

      rrreee

      그 중 proxy_pass는 백엔드 서버의 주소를 지정합니다. proxy_set_header는 프록시 요청의 헤더 정보를 설정하는 데 사용됩니다. 여기서 요청의 host 헤더는 현재 호스트로 설정됩니다. proxy_cache_bypass는 캐시를 사용하지 않는 요청을 지정하는 데 사용됩니다. 이는 요청 헤더의 cache-control을 기반으로 결정됩니다. proxy_cache_key는 요청된 URI와 매개변수의 조합인 캐시 키를 생성하는 데 사용됩니다.

      🎜🎜🎜Nginx를 다시 시작하고 테스트🎜위 구성을 완료한 후 구성 파일을 저장하고 종료합니다. 그런 다음 다음 명령을 통해 Nginx 서비스를 다시 시작합니다. 🎜rrreee🎜 그런 다음 브라우저나 명령줄 도구를 통해 요청을 보내 Nginx 캐시의 작동을 관찰합니다. 🎜🎜🎜🎜요약🎜위의 단계를 통해 Nginx의 역방향 프록시 캐시 기능을 성공적으로 구성했습니다. 캐싱을 사용하면 요청 응답 속도가 크게 향상되고 백엔드 서버의 부하가 줄어듭니다. 동시에 Nginx는 실제 필요에 따라 조정 및 최적화할 수 있는 유연한 구성 옵션도 제공합니다. 🎜🎜이 글이 Nginx의 역방향 프록시 캐싱 기능을 이해하고 사용하는 데 도움이 되기를 바랍니다. 질문이나 의문 사항이 있는 경우 댓글 영역에 메시지를 남겨주시면 최선을 다해 답변해 드리겠습니다. 🎜

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

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