가끔 이슈글로 인해 해당 글이 엄청 읽혀질때 게시글 내 이미지가 캐시서버에서 처리되는데도 불구하고 생각보다 본서버의 트래픽이 줄지 않을때가 있었습니다.

 

오늘도 그런 상황이 발생을 해서 도대체 첨부되는 이미지 말고 어떤 파일들이 트래픽을 방문자 숫자 만큼 발생하는 건지 살펴보다가 괜히 캐싱하지 않은 js 파일 등을 의심해서 그것 들 마저 캐싱해야 되나 하고 있었는데...

 

우연치 않게 해당 게시글에 들어가 있는  url 카드를 살펴보게 되었습니다. 

에디터자동완성 모듈을 사용하면서 본문 작성할때  url 주소를 입력하면 해당 url의 제목,요약,섬네일 등이 자동으로 만들어져서 들어갑니다. 

 

그런데 여기서 섬네일이 설마 설마 했는데 가져온 사이트의 원본 이미지 그대로 가져와서 저희 서버에 저장을 합니다. data 포맷이라 캐시서버에 캐시도 못합니다. 

 

엄청 큰 이미지였는데 이걸 그대로 가져오다보니 보여줄때는 섬네일로 작게 보여주는데 용량이 무려 3.5M 입니다. ㄷㄷㄷㄷ

오늘 해당 글이 1000명 이상이 읽혔는데 본서버 트래픽이 이상하게 줄지 않아서 찾다가 이걸 찾아냈네요..

 

당장  url 카드 허용 도메인으로 설정을 바꿔서 원하는 유튜브 등 멀티미디어 사이트 들만 허용하고 일반  url은 동작하지 않도록 바꿨습니다.

 

와... 이런데서 이렇게 큰 트래픽이 누수가 있을 줄.....

 

오늘 3.5G 도둑 맞았네요.

 

 

 

트래픽 호로록 하는 도둑놈 (feat. 에디터 자동완성모듈)

https://xetown.com/topics/1467633

웹지기

profile
10년을 다루다 보니 이제 간단한 것도 만들고 커뮤니티 운영에 관한 다양한 노하우가 있습니다. 어려운 점이나 가지신 생각을 함께 소통해 보아요.
https://rxtip.kr/ 라이믹스 꿀팁
  • profile

    이미지를 data:로 처리하는 것이 관리에는 편할 수 있지만 (어디에 첨부파일을 따로 저장해 놓을 필요가 없으니까요) 트래픽이나 캐싱 효율 측면에서는 최악의 선택이지요.

     

    심지어 HTML이나 CSS에서 참조하는 백그라운드 이미지 같은 것을 모두 data:로 변환해 주는 것이 무슨 대단한 기능인 것처럼 소개하는 프로그램도 있는데, 완전 노이해입니다. 대부분의 사이트에서 캐싱이 원활하지 않고 HTTP/2가 존재하기 전에 생겨난 최적화 트릭인 것 같아요. 그런데 그 당시에 만들어진 프로그램도 아니고 최신 노드JS 기반의 프레임워크나 라이브러리들이 그 짓을 똑같이 해댑니다. ㅋㅋㅋ

  • profile profile
    저는 사실 캐시 못하는 것 때문에 아쉽다고만 생각했는데 원본 그대로 저장을 하는 것을 오늘 우연히 발견하고 경악을 금치 못했습니다. 섬네일용으로 작게 보여주는데 원본 파일이 세로로 엄청 긴 이미지였는데 무려 3.5M 여서 하루 종일 이 글이 계속 읽히는데 본서버 트래픽이 줄지 않더군요. 덕분에 도둑놈 잡았습니다.
  • profile profile
    백그라운드 이미지 같은 것을 모두 data:로 변환해 주는 것이 무슨 대단한 --> 이거 라이믹스에서 모두 압축을 선택하면 css에서 그렇게 처리되어 오히려 css 파일이 용량이 많이 증가하더라구요. 어제 글에 제가 언급한...
  • profile profile
    네, 라이믹스도 그 라이브러리 때문에 골치입니다. ㅠ
  • profile ?

    이렇게 논리적으로 이해는 못하고 있었지만 해당 구조를 보았을때 그런 느낌이 왔었습니다.
    우리 같은 사람도 쥐뿔도 모르는데 아는 척 하는 사람 정도는 구분 가능 하듯... 

    굳이 왜 저렇게 할까 느낌이 드는 구현 방식 정도는 구분 되는 경우도 있더군요.

  • profile profile
    해당 라이브러리에 setMaxImportSize 함수랑 setImportExtensions 함수가 있던데,
    이참에 라이믹스 설정으로 제공하는게 어떨련지요.
  • profile
    에디터 자동완성 모듈 구경도 못해본 사람은 이같은 문제는 안겪겠네요..
    따로 구매 하신건가요? 기본제공인가요
    따로 구매하신거면 돈내고 트래픽 낭비를..
  • profile
    헐,,;;; 정보 감사합니다ㅜ
  • profile profile

    네. 어제 게시글 하나가 이슈가 되었는데 거기 첨부한 이미지가 총 7-8메가 정도 되었고 모두 캐시되어서 본서버에서는 트래픽이 증가하지 않아야 하는데 방문자가 올때 마다 본서버 트래픽이 줄지 않아 찾게 되었습니다.

    이부분은 트래픽 측면에서 굉장히 안좋은 상황입니다.

    예를 들어 본문에 있는 이미지가 500kb 한장이었고 이걸 캐시했다고 하지만 url 카드에 500kb 수준의 섬네일 이미지를 가지고 있어 버리면 캐시가 안되는 비효율이 100%에 해당하는 것이 발생하는 상황이 되어 버립니다.

    물론 url 카드를 모든 게시글에 쓰지는 않고 또 모든 사이트에서 가져온 이미지가 용량이 매우 크진 않더라도 섬네일 수준의 크기가 아닌 큰 사이즈의 이미지를 출력한다는건 사이트 전체 문서를 불특정 다수가 열람하게 된다면 트래픽 손실이 있을 수 밖에 없네요.

    url 카드 금지 대상을 허용으로 바꾸시는 것을 추천해 드립니다. 저희는 유튜브와 같은 사이트만 허용하는 것으로 바꿨습니다.

  • profile profile
    다른 사이트 관리자분은 아예 파싱묘듈으로 변경하기도 하던데..
    어떻게 할지 깊이 고민을 좀 해봐야겠네요 ㅜㅜ
  • profile profile

    파싱모듈의 경우도 이미지 데이터로 저장할텐데요...(고로 캐시서버로 캐시도 안됩니다.)  거기는 사이즈가 얼마나 큰 사이즈인지 모르겠습니다. 개발자도구에서 해당 섬네일 내려받는 용량 체크해 보세요.

    - 제가 사용하는 사이트 가서 봤는데 똑같은 방식입니다. 원본이미지 그대로 본문에 하나 더 있다고 생각하시면 됩니다.


    저희는 굳이 섬네일 요약 보여주는 기능이 필요한지에 대한 의문이 생긴지 오래라서.....
    유튜브와 같이 embed로 변환이 필요한 경우에 필요하다고 생각합니다.

  • profile profile
    웹지기님! 혹시 url 카드 금지를 허용으로 바꾸려면 어떻게 해야지 바꿀 수 있나요?
  • profile profile
    구매 사이트 도움말에 있어요
  • profile profile
    앗 도움말을 안 읽은게 이렇게...ㅎㅎㅎㅎ^^;;;;
    감사합니다.. ㅠㅠ