이게 req 보낼때 accept-encoding에 gzip 들어오면

gzip으로 컨텐츠 압축해서 보내지 않습니까..

그런데 생각해보니까 구지 실시간으로 압축할

필요가 있을까? 하는 생각이 들더라구요.

압축이란게 CPU로드가 가장 큰 작업중 하나인데...

그냥 미리 gzip으로 압축해서 예를 들면 a.html.gz란

이름으로 가지고 있다가 gzip 압축 전송을 해야할

경우가 오면 a.html을 찾아서 압축하는게 아니라

a.html.gz 파일을 먼저 찾아서 이름만 a.html에 mime도

html로 해서 보내면 되지 않을까? (없으면 그냥 실시간 압축하고)

이게 잘 될까 긴가민가 했는데 필터로 하나 짜서 해보니까

의외로 잘되더라구요.  mod_deflate로 압축하는게 gzip으로

컴맨드라인에서 압축하는거하고 똑같은거구나하고 깨달았죠.

확장자도 첨엔 gz로 그냥 쓰니까 일반 gz파일하고 구분이

안되서 전용 확장자써서해결을 했죠.

이건 제가 웹서버를 직접 만들었기 때문에 가능한

짓이었는데 생각해보니까 이 비슷한 아이디어를

생각하기 어려운 것도 아니고 아마 아파치나 nginx에서도

비슷한게 가능할 것 같다는 생각이 들긴 드는데.. 

이런게 과연 이미 있을까요? 일단 mod_deflate는

자체적으로 압축결과를 캐쉬같은건 안하는거 같은데 말이죠...

  • profile

    그렇게 하는 방법이 예전부터 돌아다니긴 했어요. 지금도 설정을 잘 뒤져보면 가능할 것 같네요.

     

    그런데 CPU 성능이 좋아지고 어플리케이션과 DB의 부하가 차지하는 비중이 높아지면서

    이제는 gzip 때문에 발생하는 CPU 부하는 거의 신경쓸 필요조차 없게 되었습니다.

    이미지, 동영상 등 이미 압축된 파일을 또 압축한다고 뻘짓하지만 않으면 돼요.