Nginx를 사용해서 롤링 배포 구축 후 API 실패율이 많이 올라갔다.

https://api.gamemuncheol.com/open-api/posts/page/new 에 호출시 응답이 느릴지언정 결국 응답이 되기는 하는 서버를 만들어보자!
이를 해소하기 위해서 Nginx 쿡북이라는 책을 사고 한 번 쭉 읽은 후 Nginx가 응답을 버퍼링할 때 데이터의 양이 너무 많기 때문에 그런가..? 하는 생각이 들었다.
그래서 nginx.conf에서 proxy buffer size를 더 늘려주었다.
proxy_buffer_size 16k; # 헤더가 큰 경우 이 값을 늘릴 수 있습니다.
proxy_buffers 8 32k; # 더 많은 버퍼로 조정하여 더 많은 데이터를 메모리에 보관
proxy_busy_buffers_size 64k; # 더 많은 메모리 사용을 허용
proxy_temp_file_write_size 64k; # 임시 파일 쓰기 크기 늘리기

Proxy Send Timeout과 Read Timeout Connect Time Out을 크게 늘린 후 또 한 번 성능 테스트를 진행했다.
proxy_send_timeout 1800s; # 요청을 보내는 타임아웃을 늘림
proxy_read_timeout 1800s; # 응답을 받는 타임아웃을 늘림
proxy_connect_timeout 3600s; # 연결 타임아웃을 늘림
# 실패한 요청 재시도
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_next_upstream_timeout 1800s; # 재시도 허용 시간
proxy_next_upstream_tries 10; # 최대 재시도 횟수

API 성공률이 1000TPS에서 70% -> 95%로 개선되었음을 알 수 있다!