구글이 공개한 mod_pagespeed를 컴파일된  apache 2.4 에 설치하는 방법을 설명 한다.
구글의 경우 nginx 의 경우 컴파일 버전을 apache 버전은 rpm 버전으로 제공 하고 있으며
일반적으로 yum 설치되어 /etc/http 안에 위치한경우 rpm 설치만으로 활성화가 가능 하다.
다만 컴파일을 해서 prefix 가 다른곳에 있을경우 rpm을 설치한다면 dependency 때문에 yum 으로 httpd 가 설치되어 시스템이 꼬이게 되므로 설치할 수 없는게 일반적인 상식 ‘ㅅ’..
하지만 yum 으로 설치가능한 httpd 의 경우 버전이 매우 낮아 새로운 기술을 전혀 활용하지 못한다… SNI 라던가 HTTP/2 라던가..
때문에 구글이 배포한 rpm을 분해하여 서버에 맞게 편집한뒤에 적용을 한다 ‘ㅅ’b
1. mod_pagespeed 배포 는 https://developers.google.com/speed/pagespeed/module 에서 다운받아서 rpm2cpio 명령어를 이용해 rpm을 분해 한다.
| 1 2 3 | ~]# cd /opt ~]# wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_x86_64.rpm ~]# rpm2cpio mod-pagespeed-stable_current_x86_64.rpm | cpio -idmv | 
2. 압축해제된 파일을 경로에 맞게 수정 이동 시킨다 ‘ㅅ’a ( 예제 에서 컴파일된 위치는 /usr/local/apache 이다. )
| 1 2 3 4 5 6 7 | ~]# sed -i 's=/usr/lib64/httpd/==g' ./etc/httpd/conf.d/pagespeed.conf  ~]# mv ./usr/lib64/httpd/modules/mod_pagespeed* /usr/local/apache/modules/ ~]# mv ./usr/bin/pagespeed_js_minify /usr/bin/ ~]# mv ./etc/cron.daily/mod-pagespeed  /etc/cron.daily/ ~]# mv ./etc/httpd/conf.d/pagespeed* /usr/local/apache/conf/extra/ | 
3. httpd.conf 에서 pagespeed.conf 파일을 불러오도록 설정 한다.
| 1 2 | Include conf/extra/pagespeed.conf Include conf/extra/pagespeed_libraries.conf | 
4. 아래는 개인적으로 편집한 pagespeed.conf 파일이다 ‘ㅅ’a
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | <IfModule !mod_version.c>   LoadModule version_module modules/mod_version.so </IfModule> <IfVersion < 2.4>   LoadModule pagespeed_module modules/mod_pagespeed.so </IfVersion> <IfVersion >= 2.4.2>   <IfModule !access_compat_module>     LoadModule access_compat_module modules/mod_access_compat.so   </IfModule>   LoadModule pagespeed_module modules/mod_pagespeed_ap24.so </IfVersion> <IfModule !mod_deflate.c>  LoadModule deflate_module modules/mod_deflate.so </IfModule> <IfModule pagespeed_module>     ModPagespeed on     ModPagespeedInheritVHostConfig on     AddOutputFilterByType MOD_PAGESPEED_OUTPUT_FILTER text/html     ModPagespeedFileCachePath "/var/cache/mod_pagespeed/"     ModPagespeedLogDir "/var/log/pagespeed"     ModPagespeedSslCertDirectory "/etc/pki/tls/certs"     ModPagespeedSslCertFile /etc/pki/tls/cert.pem #    ModPagespeedMemcachedThreads 1 #    ModPagespeedMemcachedServers localhost:11211     ModPagespeedEnableFilters elide_attributes     ModPagespeedEnableFilters convert_gif_to_png,recompress_png,convert_png_to_jpeg,convert_jpeg_to_progressive,recompress_jpeg     ModPagespeedEnableFilters convert_jpeg_to_webp,convert_to_webp_lossless,convert_to_webp_animated,recompress_webp     ModPagespeedEnableFilters extend_cache,combine_css,combine_javascript,collapse_whitespace,move_css_to_head,defer_javascript     ModPagespeedEnableFilters rewrite_images,lazyload_images     ModPagespeedDisableFilters rewrite_css,rewrite_javascript,defer_javascript,fallback_rewrite_css_urls     ModPagespeedEnableFilters make_show_ads_async,make_google_analytics_asyn     ModPagespeedDisallow "*/wp-content/plugins/akismet/*"     ModPagespeedRateLimitBackgroundFetches off     ModPagespeedJpegRecompressionQuality -1     ModPagespeedDisableRewriteOnNoTransform off     ModPagespeedFetchHttps enable     ModPagespeedCreateSharedMemoryMetadataCache "/var/cache/mod_pagespeed/" 51200     ModPagespeedRewriteLevel PassThrough     ModPagespeedFileCacheSizeKb          512000     ModPagespeedFileCacheInodeLimit        500000     ModPagespeedStatisticsLogging on     ModPagespeedMessageBufferSize 100000     <Location /pagespeed_admin>         Require local         Require ip 127.0.0.1         SetHandler pagespeed_admin     </Location>     <Location /pagespeed_global_admin>         Require local         Require ip 127.0.0.1         SetHandler pagespeed_global_admin     </Location> </IfModule> | 
memcache 를 쓴다면 중간에 주석처리된 ModPagespeedMemcached 관련 옵션을 활성화 한다. ‘ㅅ’a
외부에서 js 를 가져오는 부분의 속도가 빨라지기 때문에 js를 많이 쓰는 복잡하고 느린 사이트일수록 사이트 가속된것을 체감할수 있는것으로 확인됨 ‘ㅅ’b
그리고 또 js minify 기능이 있기 때문에 별도로 개발자가 신경을 쓰지 않아도 되기 때문에 매우 편한 mod 인듯…
설치를 추천합니다 ‘ㅅ’ b
간혹 캐시 적용으로 사이트가 특정 경로상에 문제가 발생하는 경우 아래와 같이 특정 경로에서 기능을 끄거나
사이트 전제 pagespeed 적용을 해제 할 수 있다.
| 1 2 3 |     ModPagespeedDisallow "*/wp-content/plugins/akismet/*"     ModPagespeedDisallow "*.enteroa.com/problem/*"     ModPagespeedDisallow "*.enteroa.kr/*" |