• 회원가입
  • 로그인
  • 구글아이디로 로그인

[web] 트래픽 아끼는 법 4 - (= 트래픽 절약법) ★

6,786  

목차

  1. jQuery 외부로드
  2. .htaccess 에 PC 캐시 이미지 긁어와서 읽기
  3. 외부링크 차단
  4. 구글봇 차단
  5. 아파치 Deflate Expires 설정으로 트래픽 줄이기

 

jQuery 외부로드

jQuery에서 제공하는 CDN
 
jQuery에서 제공하는 최신 jQuery CDN
https://code.jquery.com/jquery.min.js
 
MS에서 제공하는 CDN
https://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.3.min.js
 
Google에서 제공하는 CDN
 
Google에서 제공하는 CDN
 
Google에서 제공하는 CDN

 


 
기존 자신의 서버에 있는 jQuery 로드 부분을 제거하고 위 링크 중 하나 사용.
<script type="text/javascript" src="jQuery 외부 링크 주소"></script>

로드 속도는 본인 서버에 올린 경우와 별반 다르지 않으니, 속도 관련해서는 걱정 안하셔도 됨.

PS.

 

.htaccess 에 PC 캐시 이미지 긁어와서 읽기

 

/.htaccess 파일에 아래 코드 추가 (없으면 생성 추가)
 수정 전
#ExpiresActive On
#ExpiresByType image/gif A86400
#ExpiresByType image/jpg A86400
 
수정 후 (# 제거해 주석 처리된 걸 해제)
ExpiresActive On
ExpiresByType image/gif A86400
ExpiresByType image/jpg A86400
 
해석 : gif, jpg 파일을 서버에서 한번 읽으면 하루동안 접속자 pc(캐시)에서 읽으라는 뜻.

 

 
[보완 코드]
 
## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 month"
</IfModule>
## EXPIRES CACHING ##

 


외부링크 차단


파일 내용을 아래와 같이 작성해서 차단할 폴더 내 .htacess 파일을 만들어 업로드. 
※ 주의: htaccess 앞에 마침표 붙여야 함.

3번째 줄은 허용 도메인. (★ 허용 도메인에 반드시 본인 도메인 명은 입력되어야 합니다.)
4번째 줄은 차단할 파일 확장자.

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?naver\.com [NC]
RewriteRule .*\.(jpe?g|gif|png|swf|flv|mp3|mp4|wma|wmv|asf|mov|avi)$ - [NC,F]
 
차단시 대체 이미지 표시하려면 마지막 줄 소스를 아래 처럼 수정
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?naver\.com [NC]
RewriteRule \.(jpe?g|gif|png|swf|flv|mp3|mp4|wma|wmv|asf|mov|avi)$ http://불펌시 대체 이미지.jpg[NC,R,L]
 
참고로. 저는 이미지 파일들과 swf 파일만 확인 했습니다. 웬지 mp3같은 것들은 제대로 안되더군요;
 

 

구글봇 차단


아래 문구를 /.htaccess 파일에 추가하면 구글봇 차단.
SetEnvIfNoCase User-Agent "Googlebot" bad_request
Deny from env=bad_request
첫 번째 줄을 계속해서 다른 검색엔진들을 추가 하시면 됩니다.
SetEnvIfNoCase User-Agent "naver" bad_request 이런식으로 추가.

예)
SetEnvIfNoCase User-Agent "Googlebot" bad_request
SetEnvIfNoCase User-Agent "naver" bad_request
Deny from env=bad_request

그러나 이미 검색 엔진이 긁어 갔다면 늦은 겁니다.

 

아파치 Deflate Expires 설정으로 트래픽 줄이기

 

아파치 모듈중에 mod_deflate 가 있다. 컨텐츠를 압축해서 전송해주는 방법이다.

압축해서 전송하면 브라우저가 알아서 압축을 풀어서 보는 방식이다.

 

※ mod_deflate 모듈 설정

 

<IfModule mod_deflate.c>

AddOutputFilterByType DEFLATE text/plain

AddOutputFilterByType DEFLATE text/html

AddOutputFilterByType DEFLATE text/xml

AddOutputFilterByType DEFLATE text/css

AddOutputFilterByType DEFLATE text/javascript

AddOutputFilterByType DEFLATE image/svg+xml

AddOutputFilterByType DEFLATE image/x-icon

AddOutputFilterByType DEFLATE application/xml

AddOutputFilterByType DEFLATE application/xhtml+xml

AddOutputFilterByType DEFLATE application/rss+xml

AddOutputFilterByType DEFLATE application/javascript

AddOutputFilterByType DEFLATE application/x-javascript

DeflateCompressionLevel 1

 

# Browser specific settings

BrowserMatch ^Mozilla/4 gzip-only-text/html

BrowserMatch ^Mozilla/4\.0[678] no-gzip

BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

BrowserMatch \bOpera !no-gzip

</IfModule>

 

DeflateCompressionLevel 은 압축율인데
1 ~ 9 사이의 값으로 설정이 가능한데 숫자가 높을수록 cpu 사용량이 올라간다.

1 정도만 설정해도 효과는 충분할 것 같다.

 

추가로 mod_expires 라는 모듈도 있는데
이는 브라우저의 캐시 기능을 활용하는 방식인데
이 또한 설정을 해 놓으면 트래픽을 줄일 수가 있다.

 


※ mod_expires 모듈 설정

 

<IfModule mod_expires.c>

ExpiresActive On

ExpiresByType image/gif "access plus 1 days"

ExpiresByType image/jpeg "access plus 1 days"

ExpiresByType image/png "access plus 1 days"

ExpiresByType text/css "access plus 1 days"

ExpiresByType image/gif "modification plus 1 days"

ExpiresByType image/jpeg "modification plus 1 days"

ExpiresByType image/png "modification plus 1 days"

ExpiresByType text/css "modification plus 1 days"

 

</IfModule>

 

캐시 만기 시간 설정
 
1. 
access plus (접속 후 만기 시간) 
  • 1년 후 : 5 years
  • 1달 후 : 1 months
  • 2주 후 : 2 weeks
  • 10일 수 : 10 days
  • 5분 후 : 5 minutes
  • 30초 후 : 30 seconds

2. 
modifications plus (서버의 파일 수정 시간 기준)

브라우저에 해당 파일을 캐시에 저장한 후에 
다음 접속시 만료시간 전이라면 브라우저 캐시에서 데이터를 가져오게 되므로 
서버에 트래픽이 발생하지 않는 이점이 있다.

한 가지 흠이 있다면 
서버에 이미지가 수정되어 업로드 한 경우에 
즉각적으로 변경된 이미지를 볼 수 없다는 점이 아쉽다.


정보출처: 딸기아빠 님

 


2015-02-06 (금) 08:46 10년전
와.. 제가원하는정보를 올려주셨네요
안그래도 제가 얼마전에 티스토리에다 업로드하고 이미지를 대체할려고했는데
안먹히더라구요 방법이 잘못된것같은데..
http://cfile9.uf.tistory.com/image/2604933654D2BBB826051F

이 이미지주소를 가지고 어떻게 올려야하나요?
     
     
2015-02-06 (금) 12:06 10년전
외부이미지를 사용하면 본문에 이미지가 노출됩니다. 그래도, 사용을 원하시면 아래 과정 따라하세요.

1. 관리자 > 기본환경설정 > 이미지 업로드 확장장

  수정 전: gif|jpg|jpeg|png
  수정 후: gif|jpg|jpeg|png||

2. 에디터 편집모드에서 우측 하단의 <> 버튼 클릭해 html 모드로 전환 후, 아래 형식으로 기입
  <img src="티스토리 주소">


PS. 티스토리 말고, imgur.com 도 사람들이 많이 이용하더군요.
PS. 배추 님께 물어봤는데, 외부이미지는 썸네일용으로 이용 힘들다 하네요.
    display:none 이나 visibility:hidden 속성을 이용해 감추니까 썸네일 생성 자체가 안됨. ㅡㅡ
분류 제목
talk 배추패밀리 가입할까? 말까? 고민하는 분들께....... 2
ucc 수나라 30만 대군을 물리친 「을지문덕」 장군 기록과 후손이 없는 이유
sports 토트넘 손흥민 후반 교체출전, 3골 해트트릭 달성
girl 세상 남자 다 꼬실 수 있는 표정 짓는 누나
talk 엑셀 라이브러리 코드 살펴보고 있는데....
talk 엑셀 스크롤바 상하 수직 이동 엄청 불편 ㅡㅡ;
ucc 맥도날드 상위 1% 직원 1
talk 크롬 앗이런 에러 해결했더니만...
pc 윈도우10 - 설치된 프로그램 제거・삭제
sports 리버풀, 맨유를 4:0으로 제압 (※ 토트넘 4위 유지)
ucc 저기요, 제 발 밟았는데 한 대 맞으시겠어요?
talk 중국의 대한민국 분열책 (= 이간질 뒷공작 = 이이제이 정책)
girl 하이키 서이 님 (H1-KEY SEOI) "ATHLETIC GIRL, RUN, 건물 사이에 피어난 장미" 댄…
ucc 코딩 날로 먹으려는 학생 참교육하는 ChatGPT G선생님
talk 상쾌한 주말을 위해 매주 금요일 대청소 중인데..
ucc 신기한 동굴집 / 운취 쥑이는 한옥집
girl 하이키 리이나 님 (H1-KEY RIINA) "건물 사이에 피어난 장미, ATHLETIC GIRL, RUN"…
sports 김은선 프로 님이 알려주는 올바른 골프 스윙 자세
talk 피장파장 소송 들어보셨어요?
web FTP 이용 불가 상황에서 putty (푸띠, 뿌띠)로 홈페이지 접속해 작업하기
46/163
목록
찾아주셔서 감사합니다. Since 2012