요즘 클라우드 플레어 비즈니스 플랜이 아닌 이상은 전부 CDG 나 LAX 등으로 연결되는듯 하더라구요
트래픽 절감을 위해 클라우드 플레어는 써야겠는데 속도는 느려서 환장할것 같고...
해결책을 찾다가 용량이 비교적 큰 첨부 이미지 파일만 클라우드플레어를 거쳐오고
HTML/JS/CSS 등은 클라우드 플레어를 안거쳐오게 처리하면 어떨까 하는 생각이 들었습니다.
원래 계획은... 본 사이트는 클라우드 플레어 경유를 풀어버리고
첨부파일만 외부 별도의 서버로 내보내고
외부 저장용 서버만 클라우드 플레어 적용을 해서 사용하려고 했는데...
이 애드온이 방치된지 오래된 탓인지...
작동을 안해서 다른 방법으로 비슷한 기능을 구현해봤습니다.
장점 :
1. 이미지 첨부파일만 클라우드 플레어 CDN을 경유하기 때문에 사이트 전체의 속도는 클라우드 플레어를 적용안한 상태로 빠르게 유지하면서 트래픽 절감을 기대할수 있다.
(본 사이트에는 클플이 안걸려있고, 첨부 이미지에만 클플이 걸려있으니 사이트는 빠르게 뜨고, 이미지 뜨는 속도만 조금 느려집니다.)
2. 서브도메인을 활용하므로 도메인을 하나 더 사야될 필요가 없다.
단점 : 이 방법으로 적용할경우 야매.. 스러운 방법이라 어떤 예상치 못한 문제가 발생될지 알수 없음..
아직까지는 별 문제가 발생하지는 않았습니다.
원리 : 첨부파일 (이미지) 등록시 본문에 삽입되는 이미지주소가 기존에는 http://도메인/files/attach/~ 형식인데
이것을 http://image.도메인/files/attach/~ 형식으로 변환하여 글등록을 해주므로 사람들이 글을 읽거나 할때에
첨부 이미지는 도메인.com (클플 미적용)이 아닌 image.도메인.com (클플 적용)을 통하여 출력된다.
적용법 :
1. 클라우드 플레어 에서 서브도메인을 추가한다. 이름은 자유롭게 (ex : image 등)
2. 해당 서브도메인을 사용할수 있도록 서버 혹은 호스팅에서 세팅 (서브도메인 추가)
3. /common/js/plugins/jquery.fileupload/js/ 의 main.js & main_min.js 파일을 열어서 104~108번 째을
f(result.error == 0) { if(/\.(jpe?g|png|gif)$/i.test(result.source_filename)) { temp_code += '<img src="' + result.download_url + '" alt="' + result.source_filename + '" editor_component="image_link" data-file-srl="' + result.file_srl + '" />'; temp_code += "\r\n<p><br></p>\r\n"; }
아래와 같이 변경해준다.
f(result.error == 0) { if(/\.(jpe?g|png|gif)$/i.test(result.source_filename)) { temp_code += '<img src="//image.도메인.com' + result.download_url + '" alt="' + result.source_filename + '" editor_component="image_link" data-file-srl="' + result.file_srl + '" />'; temp_code += "\r\n<p><br></p>\r\n"; }
위의 과정을 거치게 되면 이후 등록되는 게시글의 첨부이미지 경로는 모두 http://image.도메인.com 으로 시작하게 됩니다.
만약 새로등록하는 게시글이 아닌 이전의 글들까지도 클플을 거치게 하려면
sql 명령어로 document 의 이미지경로를 모두 위에서 만든 클플용 경로로 변경해주면 되겠습니다.