Nginx 에 리 버스 프 록 시 설정
6481 단어 Nginx
프로젝트 에서 일부 제품 소개 류 그림, 문 서 는 hdfs 에 저장 되 지만 hdfs 의 액세스 속도 가 느 려 인터넷 사용자 의 요 구 를 만족 시 키 지 못 합 니 다. 여 기 는 캐 시 방식 을 사용 하여 nginx 프 록 시 서버 에 파일 캐 시 를 자주 변경 하지 않 고 HDFS 의 읽 기 횟수 를 줄 이 고 사용자 의 접근 속 도 를 높 입 니 다.
Nginx 캐 시 원리
캐 시 기술 의 기본 사상 은 사용자 가 이미 방문 한 내용 을 Nginx 에 복사 본 을 만 드 는 것 입 니 다. 만약 에 한 동안 (캐 시가 만 료 되 지 않 았 음) 이 데 이 터 를 다시 방문 하면 데 이 터 를 가 져 오 라 고 요청 하지 않 아 도 캐 시 에서 이 데 이 터 를 직접 읽 을 수 있 습 니 다. 장점 은 Nginx 와 백 엔 드 서비스 간 의 네트워크 상호작용 을 줄 이 고 네트워크 의 압력 을 줄 일 수 있 습 니 다.또한 데이터 전송 지연 을 줄 일 때 사용자 의 접근 속 도 를 높 일 수 있다.또한 백 엔 드 서비스 에 이상 이 생 겼 을 때 캐 시 를 통 해 해당 사용자 의 요청 을 할 수 있어 백 엔 드 서비스의 안정성 을 높 일 수 있다.[외부 체인 이미지 저장 실패, 원본 사이트 에 도 난 방지 체인 메커니즘 이 있 을 수 있 습 니 다. 그림 을 저장 하여 직접 업로드 하 는 것 을 권장 합 니 다 (img - kUtfe4tx - 1579162275349) (en -resource://database/2234:1)]
프 록 시 캐 시 사용 하기
프 록 시 캐 시 를 사용 하려 면 두 단계 작업 이 필요 합 니 다. 하 나 는 캐 시 일반 설정 을 설정 하 는 것 입 니 다. 하 나 는 경로, 디 렉 터 리 등급, 실효 정책 등 을 포함 하고 다른 하 나 는 해당 하 는 주소 에서 캐 시 를 사용 하 는 것 입 니 다.
proxy 설정cache_path
http 모듈 에 대응 하 는 정 보 를 설정 합 니 다.형식 은 다음 과 같 습 니 다.
proxy_cache_path path [levels=levels] keys_zone=name:size [inactive=time] [max_size=size] [loader_files=number] [loader_sleep=time] [loader_threshold=time];
예제 코드: proxy_cache_path /opt/app/cache_test levels=1:2 keys_zone=cache_test:10m inactive=1d max_size=1g;
매개 변수 설명:대응 하 는 location 노드 에서 캐 시 를 사용 합 니 다.매개 변수 설명:
예시
location / {
proxy_pass http://slbserver_cache; # upstrean
proxy_redirect off ;
proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# ,
proxy_connect_timeout 300;
# ,
proxy_send_timeout 300;
# ,
proxy_read_timeout 600;
# , nginx
proxy_buffer_size 256k;
# , nginx buffer
proxy_buffers 4 256k;
# proxy_buffers
proxy_busy_buffers_size 256k;
#proxy
proxy_temp_file_write_size 256k;
# 500,400 ,
proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
proxy_max_temp_file_size 128m;
# Web cache_test,proxy_cache_path , off。
proxy_cache cache_test ;
# HTTP
proxy_cache_valid 200 304 1m ;
# Web Key ,Nginx Key md5 , " ,URI,# " Key
proxy_cache_key $uri$is_args$args;
}
http 헤드 에 나타 나 고 nginx 로그 에서 캐 시 명중 상황 을 봅 니 다.
location 설정 에 추가:
add_header Nginx-Cache "$upstream_cache_status";
nginxlog 에 추가: log_format combinedio …$upstream_cache_status;
원리: nginx $upstream 이용cache_status 변수, 이 변 수 는 캐 시 명중 상 태 를 대표 합 니 다. 상 태 는 다음 과 같 습 니 다.질문: 설정 성공 후 계속 miss 표시
설정 이 끝 난 후에 캐 시 에 miss 가 계속 표 시 됩 니 다. 보통 두 가지 이유 로 이 문 제 를 일 으 키 는 것 을 발견 합 니 다.
1. 잘못된 헤더 가 포 함 된 메 시 지 를 되 돌려 줍 니 다.
정보
Cache-Control
와 Set-Cookie
를 되 돌려 줍 니 다.nginx 에서 proxy 를 통과 할 수 있 습 니 다.ignore_headers 설정 은 다음 과 같이 무시 합 니 다.server {
listen 80;
listen [::]:80;
server_name ;
location / {
......
proxy_ignore_headers Set-Cookie Cache-Control;
proxy_hide_header Cache-Control;
proxy_hide_header Set-Cookie;
......
}
}
2. 응답 내용 의 버퍼 를 닫 아서 정 보 를 캐 시 할 수 없습니다.
캐 시 를 열 어야 합 니 다.
proxy_buffering
을 on 으로 설정 합 니 다.예:location ~ (^/).*\.(gif|jpg|jpeg|png|js|css|html|cab|bmp)${
......
proxy_buffering on;
......
}
참고:
Nginx proxy_cache 캐 시 설정 Nginx 캐 시 원리 및 메커니즘 Nginx 실전 - 캐 시 서비스 proxy (1) Nginx 캐 시 서비스
Nginx 의 proxy cache MISS 문 제 는 nginx 의 역방향 프 록 시 캐 시 가 작 동 하지 않 는 문 제 를 해결 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
linux2에 nginx 설치설치 가능한 nginx를 확인하고, 해당 nginx를 설치한다. localhost 혹은 해당 ip로 접속을 하면 nginx 화면을 볼 수 있다....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.