Windows 서버에서 XE 속도 대폭 개선 방법

by 디케 posted Mar 02, 2013
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

Windows 서버에서 XE 속도 대폭 개선 방법

중요한 거네요.

 

 

Windows Server 에서만 적용되는 팁으로 사이트 속도를 매우 빠르게 개선하는 튜닝 방법 입니다.

 

XE 가 설치된 곳의 /files/config/db.config.php 파일을 편집기로 편집 해주세요.

localhost 라고 쓰여진 부분은 127.0.0.1 로 바꿔줍니다.

 

저장하시고 IIS 를 다시 시작해보시면 체감 가능할 정도로 매우 속도가 빨라진것을 확인하실 수 있습니다.

팁을 제공하여주신 TaehwanKim 님 감사합니다.

 

 

1. Cache 잡기

검색을 해보니 페이지의 Cache를 단 1분 이라도 잡는게 안잡는 것보다 속도에 영향을 미친다는 내용이 많이 있었습니다. 혹시 사이트의 수정이 거의 없는일반 페이지의 경우에는 가능한한 길게(예를 들어 10080분~20160분) 잡으세요. 게시판처럼 변화가 많은 페이지의 경우 캐싱시간 설정에서 1분으로 지정해 주세요!



2. CSS, JS파일, gzip으로 한꺼번에 압축해서 전송하기

내용 참고: http://www.xpressengine.com/19979181 

요거 대박 팁입니다!! 속도 개선에 눈에 띄는 결과가 나옵니다....

 

1. http://code.google.com/p/minify/ 에서 minify 최신버전을 다운받습니다. 현재는 minify 2.1.5 버전입니다.


2. 압축해제 한후, min 폴더내의 config.php 파일을 에디터에서 불러오기 합니다.


3. 47번째쯤 라인의 //$min_cachePath = '/tmp'; 라는 부분을 $min_cachePath = './tmp'; 로 수정합니다.


4. min 폴더안에 tmp 라는 폴더를 새로 만들기합니다.


5. min 폴더를 FTP 로 서버의 루트디렉토리에 업로드합니다.


6. 서버에 업로드된 min 폴더안의 tmp 폴더의 퍼미션을 707 로 권한 변경합니다.


7. XE 설치폴더안의 .htaccess 파일을 에디터에서 불러오기합니다.


8. 아래의 2가지 경우중 해당되는 구문을 .htaccess 파일의 맨 아랫줄에 추가합니다.


XE 설치경로가 /xe/ 로 사용되는 경우

RewriteRule ^(.*\.(css|js))$ ../min/index.php?f=xe/$1 [L]


XE 설치경로가 루트디렉토리인 경우

RewriteRule ^(.*\.(css|js))$ /min/index.php?f=$1 [L]


9. 수정한 .htaccess 파일을 XE 폴더에 덮어쓰기 합니다.

 

제대로 설치됐는지 확인하시려면 사이트를 들어가서 트래픽을 발생시키셔서 tmp 폴더에 minify_xml ...로 시작하는 이상한 이름의 파일들이 생성되면 Okay!

 

* sejin7940님께서 말씀하신 것처럼 minify는 PHP 5.1.6 이상(5.2.1이상이라고 어떤 글에는 써있네요.), 5.3 권장입니다. 

rewrite mod 도 지원해야 합니다.

 

이 이하의 버전에서는 잘 안될 수가 있습니다. 버전 확인 방법은 :

 

"자신의 php 버전을 확인하고프면..

그냥 root 에다가  <?=phpinfo()?>  를  적은 파일을 하나 생성하고  ( phpinfo.php 처럼)

그 파일을 웹상으로 접근해보면   php 버전을 확인가능합니다. " - sejin7940님

 

* 만일 레이아웃이 깨지면 min 폴더를 XE가 있는 폴더 안에 넣으세요~~  이렇게요... - 넥스트코코님.

00002.png

 

* 카페24에서 잘 안될때.... .htaceess 화일에

RewriteRule ^(.*\.(css|js))$ ./min/index.php?f=$1 [L]

로 넣어보세요.....^^ - 빛의바다님.

 

(참고로 저도 카페24를 사용하는데 빛의 바다님 구문말고, 원래 구문으로 잘됩니다.) 

RewriteRule ^(.*\.(css|js))$ ./min/index.php?f=$1 [L]

 

* 코어가 업데이트 되면 .htaccess 화일에  구문추가를 해주셔야 합니다.


3. XE에서 Gzip 사용하기

어떤 분이 쓰신 글인데, 원본글의 출처가 어디인지 찾을 수가 없어서 그냥 인용으로 합니다. 1.5버전읁 Gzip을 이용하니 이 방법을 이용하실 필요가 없습니다.


1.4 버전에서만 하세요~~ 1.5 버전은 이 과정을 하실 필요없습니다~


사이트가 넘 느려서 계속 고민하다가

gzip, defalte 압축을 하면 압축해서 text 문서가 왔다갔다 한다는 걸 듣고 이걸 적용해 볼려고

gooleing 했슴다.

근데 다 VPS 호스트 적용하는 거라 쉽지가 안더라구요.

근데 우리 XE 개발자님들 너무 감사해서 뽀뽀라도 해드리고 싶은 심정이네요.

XE 소스 안에 gzip적용할건지 Flag가 있더라구요.

고것만 true로 해주면 gzip OK!!

 

 

1. ./classes/display/DisplayHandler.class.php 파일을 에디터에서 불러오기 합니다.


2. 15번째줄에 var $gz_enabled = false;var $gz_enabled = true; 로 수정합니다.


3. 수정한 DisplayHandler.class.php 파일을 서버의 해당 경로에 덮어쓰기 합니다.

 

 

사이트가 갑자기 날아다니는 듯한 기분??!!

확실한 차이 느낍니다.

Http header확인해 보는 방법은

http://www.askapache.com/online-tools/http-headers-tool/

이 사이트의 target URL에 입력후 밑에 버튼 누르면 target url의 header 분석해서 보여줍니다.

Content-Encoding: gzip 이라고 보입니다.


4. zlib.output_compression 사용하기

예전에 어떤 분이 여기 사용팁란에 올리셨는데 자삭하셨더라고요. 그래서 인용으로 합니다.


xe는 웹페이지 로딩 속도를 빠르게하기위해 내부적으로 ob_gzhandler함수를 사용하고있다.
성능면에서 ob_gzhandler 은 별로 안좋으며 PHP 권장사항으로도 ob_gzhandler 대신 zlib.output_compression 사용할것을 권장하고있다.

zlib.output_compression 을 사용하는방법..

xe 1.4.5.10 기준..

xe/config/config.inc.php 100 line..

if(!defined('__OB_GZHANDLER_ENABLE__')) define('__OB_GZHANDLER_ENABLE__', 1); 제거후 그자리에 아래 코드 추가..

define('__OB_GZHANDLER_ENABLE__', 0);
ini_set('zlib.output_compression', 'On');
ini_set('zlib.output_compression_level', 6);

xe/modules/file/file.controller.php 124 line..

function procFileDownload() { 다음행에 아래 코드 추가..

ini_set('zlib.output_compression', 'Off');

단 적용시 기존 파일은 백업하고 적용하시면 됩니다.


수정 소스가 있습니다. (방법)


1.4.5.10 버전 기준으로 했다고 하는데


제 홈피 1.5.0.7 버전에 적용해본결과 상당 외로 빠릅니다.


크롬,익스플로러8, 파이어폭스 등의 브라우저에서 확인 해본결과


생각 외로 빠릅니다.


하지만 제 주관적 느낌 입니다.


참고 > 웹 브라우저 로딩 속도 비교 사이트 http://whichloadsfaster.com/



5. 수정된 xml_handler.js 와 xml_js_filter.js 사용


참고: http://www.xpressengine.com/userForum/20681364
에 배워서 남준다님의 첫번째 댓글 내용과 첨부파일.

 

1. 아래 첨부된 xml_handler.zip 파일을 압축해제 합니다.

 

첨부파일 :  xml_handler.zip

 

2. xml_handler.js 파일과 xml_js_filter.js 파일을 XE 설치폴더내의 ./common/js/ 폴더 안에 덮어쓰기 합니다.


* * 코어가 업데이트 되면 위 두 파일을 다시 넣어주셔야 합니다.

 

 

저의 경우 위 다섯가지 팁을 이용하여 좀 더 빠른 사이트가 되었습니다.

더 좋은 팁이 있으시면 여러분이 많이 공유해주시면 좋겠어요~!!!


* 보다 쉬운 이해와 적용을 위해 배워서 남준다님이 수정하신 글로 일부 내용 수정했습니다.