CDN - 컨텐츠 딜리버리 네트워크 CDN 컨텐츠 딜리버리 네트워크 CDN 이란 컨텐츠를 대용량으로 전송 시 (웹에서는 주로 동영상 스트리밍이나 이미지 파일이 해당됨) 웹 서버까지 직접 도달하면 시간이 오래걸린다. ( 트랙픽이 발생해서 비용적으로도 손해임 ) 따라서 CDN이라는 기술을 도입하게 되는데 CDN의 개념은 웹서버로 요청 시 DNS 프로토콜에서 웹서버의 IP를 알려주는게 아니라 캐시서버 IP를 알려주게 된다. 리눅스/nginx 2023.09.18
캐시 1. 캐시 선언 proxy_cache_path /var/nginx/cache # 경로지정 http 블록에서 사용가능 keys_zone=CACHE:60m # 공유 메모리 영역 60MB levels=1.2 # 디렉토리 구조의 레벨 지정 inactive=3h # 캐시 후 3시간 동안 유지 max_size=20g; # 캐시 영역 크기 20GB로 제한 proxy_cache CACHE; # 어떤 캐시 영역을 사용할지 결정 http, location, server 블록에서 사용가능 2. 캐시 락 동일한 리소스에 대한 요청이 여러 개 들어오면 하나의 요청만 보내서 캐시를 생성함 ( 업스트림을 한번만 하게됨 ) proxy_cache_lock on; # 생성중인 캐시에 대한 요청이 들어올 시 해당 요청을 대기했다가 캐시가.. 리눅스/nginx 2023.09.12
upstream 블럭 / stream 블럭 upstream 은 http 블럭 사용되는 블럭 stream은 TCP, UDP 연결에의한 프로토콜처리에 사용되는 블럭 둘의 차이는 뭘까 그냥 http는 upstream을 쓰고 UDP, TCP는 stream을 쓴다?? 왜 그런지 >> 그냥은 없다... 당장 떠오르는 HTTP와 UDP,TCP의 차이는 연결을 유지하느냐 안하느냐 인줄 알고 그차이로 뭔가 있는줄 알음 근데 아님 HTTP와 UDP,TCP는 다른 전송 계층으로 서로 무관함 HTTP는 UDP 기반과 TCP 기반 둘 다 있음 TCP를 많이 쓰는 듯함 결론 nginx 에서 HTTP를 처리하기위해 http 블록을 만들었다. 나중에 TCP와 UDP를 처리하기위해 stream 블록을 만들었다. 그리고 부하분산을 위해 upstream 으로 데이터를 분산하는 블.. 리눅스/nginx 2023.09.12
트래픽 관리 처음엔 트래픽이란 말을 정확히 몰랐다. 검색해보니 그냥 전송되는 데이터를 말하는 듯하다. 트래픽 관리 > 전송되는 데이터 양 관리 책에서는 데이터 관리하는 방법들을 소개하고 있다. 1. 사용자에 따라 서비스 분산 - 서비스를 업데이트하고 한번에 모든 사용자에 새로운 버전을 서비스할 경우 오류가 발생하면 모든 사용자가 오류를 경험하게된다 이때 트래픽을 분산해 이전 버전도 함께 서비스하여 오류를 발생을 줄일 수 있다. split_clients " {관리할 데이터 구분자} " $경로 예시 ) split_clients "${remote_addr}AAA" $variant { 20% "backendv2"; * "backendv1"; } location { proxy_pass http://$variant } 2. G.. 리눅스/nginx 2023.09.11
고성능 부하분산 nginx 는 고성능 부하분산 기능을 제공한다. 리버스 프록시 서버라고도 한다. upstream 블록 그냥 안에 서버 블록 여러개랑 가중치 해서 분산해준다. stream{ upstream backend{ server 10.10.12.45:80weight = 1; server app.example.com:80 weight = 2; } server { location / { proxy_pass https://backend; } } } server 블록 listen이랑 root이랑 location 그런거 설정하는 블록 http TCP UDP 에서 차이점 기본 디폴트를 http로 해놔서 upstream 이랑 server 블록만 하면 됨 다른애들은 stream 블록으로 감싸줘야됨 그리고 각각 server 블록 설.. 리눅스/nginx 2023.09.07
설정 파일과 정적 콘텐츠 서비스 nginx 의 기본 설정 파일 경로는 버전마다 차이가 있다 현재 나는 /etc/nginx/nginx.conf /etc/nginx/sites-enabled/설정파일 로 설정하여 실습하려한다. 우선 기본 설정으로 우분투 IP에 접속하고 nginx 페이지가 뜨는 걸 확인했다. 리눅스/nginx 2023.09.07