#upstream
글
-
nginx 소스 파헤치기 11: upstream과 proxy — 리버스 프록시의 한 요청
proxy_pass 한 줄이 location 에 콘텐츠 핸들러를 걸고, proxy 모듈이 ngx_http_upstream_t 의 콜백을 채우면 upstream 이 논블로킹 connect·요청 보내기·응답 헤더 읽기·본문 흘려보내기를 맡는 과정을 소스로 따라갑니다. 백엔드로 실제 나가는 요청(이 판의 기본값 HTTP/1.1, 보내지 않는 Connection 헤더), 502·504 가 정해지는 자리와 proxy_next_upstream, proxy_buffering on/off 와 임시 파일을 디버그 로그·gdb·작은 백엔드로 확인합니다.
-
nginx 소스 파헤치기 12: 부하 분산, upstream keepalive, stream 모듈 — 그리고 연재를 마치며
upstream {} 에 서버를 여러 대 적으면 nginx는 요청마다 어느 서버로 보낼지를 어떻게 고를까요. peer.init·get·free 세 함수 포인터로 짜인 부하 분산의 틀, 가중치 5:1:1을 a a b a c a a로 고르게 펴는 smooth weighted round robin, max_fails와 fail_timeout, 그 get/free를 감싸 연결을 캐시에 넣었다 꺼내는 keepalive 모듈(이 판에서는 적지 않아도 켜집니다), 그리고 같은 바닥을 TCP에 쓴 stream 모듈을 소스와 도커 예제로 확인하고 연재를 마무리합니다.