웹 개발에서 Dynamic Caching은 웹 응용 프로그램의 성능 및 응답 속도를 향상시키는 주요 수단 중 하나입니다. Docker Containerized 환경에서 Nginx를 프록시 서버로 사용하여 동적 캐싱을 구현하면 시스템의 확장 성과 유연성이 크게 향상 될 수 있습니다. 이 기사는 Docker 컨테이너에서 Nginx를 사용하여 웹 서비스의 동적 캐싱을 구현하고 특정 코드 예제를 통해 관련 구성을 자세히 설명하는 방법을 소개합니다.
구성을 시작하기 전에 다음 환경이 준비되어 있는지 확인해야합니다.
먼저 Docker 컨테이너를 생성하고 Nginx 프록시 서버를 실행해야합니다. 다음 명령을 실행하여 nginx 컨테이너를 만들고 시작하십시오.
Docker Run -D -이름 Nginx -Proxy -p 80:80 Nginx
이 명령은 최신 버전의 Nginx를 다운로드하여 실행하고 컨테이너 포트 80을 호스트 포트 80에 매핑하므로 호스트의 IP 주소를 통해 Nginx 프록시 서버에 쉽게 액세스 할 수 있습니다.
컨테이너가 생성되어 성공적으로 실행되었는지 확인하려면 다음 명령을 실행할 수 있습니다.
도커 PS
컨테이너의 상태가 "UP"이라는 것을 알면 컨테이너가 성공적으로 시작되었음을 의미합니다.
다음으로 웹 서비스의 동적 캐싱을 구현하려면 Nginx 프록시 서버를 구성해야합니다. 먼저 Nginx 컨테이너의 Bash 터미널을 입력하십시오.
Docker exec -it nginx -proxy bash
그런 다음 다음 명령을 실행하여 nginx 구성 파일을 편집하십시오.
cd /etc/nginx/conf.d/
vi default.conf
default.conf 파일에서 다음 구성을 추가하십시오.
서버 { 80; Server_Name LocalHost; 위치 / { proxy_pass http : // web-app; proxy_cache my_cache; proxy_cache_valid 200 1d; proxy_cache_use_sale 오류 시간 초과 HTTP_500 HTTP_502 HTTP_503 HTTP_504; } }
위 구성에서 Proxy_pass 지시문은 클라이언트 요청을 "Web-App"이라는 업스트림 서버로 전달합니다. 동시에, proxy_cache 명령은 프록시 서버의 캐시 기능을 활성화하고 proxy_cache_valid 명령은 캐시 유효성 기간을 1 일로 설정합니다. Cache 업데이트 중에 만료 된 캐시 컨텐츠를 반환하는 데 Proxy_cache_use_stale 지시문이 사용됩니다.
편집기를 저장하고 종료 한 후 Nginx 서비스를 다시 시작하여 구성을 시행하도록합니다.
서비스 nginx 재시작
Nginx 프록시 서버가 구성되면 Nginx 프록시 서버와 정상적으로 통신하려면 웹 응용 프로그램을 구성해야합니다. 웹 응용 프로그램의 구성 파일에서 다음을 추가하십시오.
업스트림 웹 앱 { 섬기는 사람<web-app-container-ip> ; }
이 구성에서는 필요합니다
docker inspect -f '{{range .networksettings.networks}}} {{. iPaddress}} {{end}}'<web-app-container-id>
구성에서 IP 주소를 교체 한 후 구성 파일을 저장하고 종료하십시오.
구성이 완료되면 동적 캐싱 기능 테스트를 시작할 수 있습니다. 브라우저를 열고 "http : // localhost"를 입력하여 웹 응용 프로그램에 액세스하십시오. 현재 Nginx 프록시 서버는 요청을 웹 응용 프로그램으로 전달하고 반환 된 응답 데이터를 캐시합니다.
브라우저 페이지를 새로 고침 한 후 Nginx 프록시 서버는 캐시에서 직접 데이터를 읽고 웹 애플리케이션에 대한 요청을 다시 시작하지 않고 반환하여 응답 속도를 향상시킵니다.
이 기사에서는 Docker에서 Nginx 프록시 서버를 사용하여 웹 서비스의 동적 캐싱을 구현하는 방법에 대해 설명합니다. nginx의 proxy_cache 지시문 및 proxy_cache_valid 지시문을 구성하면 Nginx의 캐시 기능을 쉽게 활성화하고 구성 할 수 있습니다. 샘플 코드를 시연하면 Docker 환경에서 Nginx 컨테이너를 작성하고 동적 캐싱 기능을 구성하는 방법을 배웁니다. 이러한 방식으로 웹 애플리케이션의 성능 및 응답 성이 효과적으로 개선되어 사용자 경험이 향상됩니다.