HTTP 요청의 역방향 프록시 캐싱을 위해 Nginx를 사용하는 방법
Nginx는 고성능 오픈 소스 웹 서버 소프트웨어로 정적 리소스 요청을 처리하는 웹 서버 역할을 할 뿐만 아니라 HTTP 요청에 대한 역방향 프록시도 수행할 수 있습니다. 역방향 프록시는 처리를 위해 클라이언트 요청을 여러 백엔드 서버로 전달하는 데 도움이 되며 캐싱을 통해 응답 속도를 향상시킬 수 있습니다. 이 기사에서는 Nginx에서 역방향 프록시 캐시를 구성하는 방법을 소개합니다.
Install Nginx
먼저 Nginx 서버를 설치해야 합니다. Linux 환경에서는 패키지 관리자를 통해 설치할 수 있습니다. Debian/Ubuntu를 예로 들어 다음 명령을 실행합니다:
sudo apt update sudo apt install 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
用于指定当后端服务器出现错误或超时时,是否使用过期的缓存作为响应。
配置反向代理
在完成了缓存的配置后,我们需要配置反向代理。在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
http{}
블록에 다음 구성을 추가하세요. 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_cache
는 my_cache
라는 캐시를 활성화한다는 의미입니다. . proxy_cache_valid
는 다양한 상태 코드의 캐시 유효 기간을 구성하는 데 사용됩니다. 예를 들어 200 및 302 상태 코드의 요청 캐시 유효 기간은 1시간입니다. proxy_cache_use_stale
은 백엔드 서버에서 오류나 시간 초과가 발생할 때 만료된 캐시를 응답으로 사용할지 여부를 지정하는 데 사용됩니다. 역방향 프록시 구성
캐시 구성을 완료한 후 역방향 프록시를 구성해야 합니다. server{}
블록 내에 다음 구성을 추가합니다.
그 중 proxy_pass
는 백엔드 서버의 주소를 지정합니다. proxy_set_header
는 프록시 요청의 헤더 정보를 설정하는 데 사용됩니다. 여기서 요청의 host
헤더는 현재 호스트로 설정됩니다. proxy_cache_bypass
는 캐시를 사용하지 않는 요청을 지정하는 데 사용됩니다. 이는 요청 헤더의 cache-control
을 기반으로 결정됩니다. proxy_cache_key
는 요청된 URI와 매개변수의 조합인 캐시 키를 생성하는 데 사용됩니다.
위 내용은 HTTP 요청의 역방향 프록시 캐싱을 위해 Nginx를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!