ホーム > タグ > apache
apache
mod_proxyとmod_ext_filterで画像圧縮プロキシを作る試み
- 2012年05月12日
- サーバ
ということで,apacheのmod_proxyを使ったフォワードプロキシを構成しているんですが,ただ単にプロキシとして使っても面白くないので,貧弱回線用に通信負荷を減らす圧縮プロキシにしちゃいました.要件は以下の通り.
- mod_deflateによるgzip圧縮転送
- mod_ext_filterを駆使した画像圧縮
ということで,mod_proxyを以下のように設定しました.動いているのであっていると思います.ただ,書き方が良いかどうかは微妙すぎるので,よりよい書き方がありましたら,ご指摘下さい.
<IfModule mod_deflate.c> DeflateCompressionLevel 9 DeflateFilterNote Ratio ratio LogFormat "%h %l %u %t \"%r\" %>s %b (%{ratio}n%%)" common_deflate </IfModule> <IfModule mod_proxy.c> Listen xxxxx <VirtualHost _default_:xxxxx> CustomLog /var/log/apache2/proxy.log common_deflate ErrorLog /var/log/apache2/proxy_error.log ProxyRequests On ProxyVia Block <Proxy *> Order deny,allow Deny from all AuthType Digest AuthName "ProxyAuth" AuthUserFile /etc/apache2/.prxpswd Require valid-user Satisfy any AddDefaultCharset Off SetOutputFilter DEFLATE </Proxy> <IfModule mod_ext_filter.c> ExtFilterDefine jpeg-filter mode=output cmd="/usr/bin/convert -quality 15 jpeg:- jpeg:-" ExtFilterDefine png-filter mode=output cmd="/usr/bin/convert -colors 16 -colorspace Transparent -quality 90? +dither +profile \"*\" png:- png:-" <ProxyMatch \.(jpe?g|JPE?G)$> SetOutputFilter jpeg-filter </ProxyMatch> <ProxyMatch \.(png|PNG)$> SetOutputFilter png-filter </ProxyMatch> </IfModule> </VirtualHost> </IfModule>
参考
誘いやすくなる画期的なWebサービスfixerを作りました!
- 2012年05月04日
- サーバ
作りました!ししまるさんの予定を確認して,誘いやすくするwebサービス「fixer」を作りました!ちょっとアクセス過多で繋がりにくいかもしれないです・・・人気者は辛いな! 4403.biz/fixer/ #gambare4403
— 田中実(SCIS2013非公式アカウン)さん (@k4403) 5月 4, 2012
ということで,予定や行きたい場所,やりたいことを簡単に確認できて,誘いやすくなる画期的なWebサービスfixerを作りました.
嘘です.
以前,こんなことをつぶやきました.
おう.お前ら.オレがすごいテクニックを教えてやる.超可及的速やかにWebサイトを立ち上げろって言われたら,mod_rewriteなどを使って,全てのアクセスを503に振るといいぞ.404とは違うのだよ404とは.アクセス過多を装うんだ!!
— 田中実(SCIS2013非公式アカウン)さん (@k4403) 2月 3, 2012
その実装が,fixerです.具体的には,.htaccessに次のような暗号を書き込みます.
RewriteEngine On RewriteRule .* - [R=503]
これでアクセス過多を装えます.実体はありません.世の中そんなものです.ですので,「あ!これはすごい争奪戦!まずい!すぐに誘わなきゃ!」ってなることを期待します.
WordPressの高速化いろいろ
- 2010年12月19日
- サーバ
以前はMovableTypeでブログをやっていたのですが,今はWordPressに乗り換えました.MTはスタティックHTMLを発行する(ダイナミックパブリッシングもあるけど)ので,記事数が増えてくると再構築に時間がかかるのがネックでした.対して,WPはPHPを駆使したダイナミック出力であり,再構築が不要です.まぁ,乗り換えの理由にはそれ以外にも色々とあったんですが,それはそれで.
閑話休題.Wordpressは動的出力になっているので,オーバーヘッドが気になります.MTはスタティックHTMLだったので,この差はかなり気になるところです.ですので,WPを如何に高速化させるかが重要なポイントになってきます.というわけで,このブログに適用している高速化手法を紹介したいと思います.このような手法で高速化させていますが,レスポンスはいかがですか?
WPプラグイン
まずはWP側でできることからやっていきましょう.高速化を目的として導入しているプラグインは以下の通りです.
ほとんど定番ですね.簡単に説明します.jQuery lazy loadは画像の読み込みを遅延させます.具体的には,画像が表示される位置までスクロールされると読み込みを行います.そのため,イニシャルトラフィックを減らすことができるので,体感的な高速化が図れます.WP CSSはgzipとかしてるらしいです.後述するmod_pagespeedと効果が重複している気もするので,いらないかもしれません.先にWP Super Cacheを説明します.というか,定番過ぎるので説明の必要はないと思いますが,基本的な高速化プラグインです.色々とコンテンツをキャッシュしてくれます.基本的に,このWP Super Cacheによる高速化効果が1番高いです.手っ取り早く高速化したい人はこれを導入すればいいと思います.
で,残ったWP Memcached Managerはmemcachedを用いてキャッシングするプラグインです.導入方法はここら辺を参考にすると良いと思います.利用には,memcachedをインストールして,起動させておく必要があります.特に考えなくても利用できます.ただ,機能してはいるんですが,memcachedがかなり暇なようなので,割当メモリは16MBに減らしています.これでも多いぐらい見たいです.記事数がまだ少ないですからね.
APC
PHPの高速化といえば,APCが主力です.これはpeclから簡単にインストールできます.これもインストールしてしまえば,特に何も考えることなく利用できます.デフォルトの設定でも良いのですが,サーバ側のメモリを余らせていても仕方がないので,48MB割り当てるように変更しています.それだけです.APCはWPに限らず,あらゆるPHPアプリに効果を発揮しますので,WebプログラミングにはPHPを好んで使うボクには嬉しい限りです.
mod_pagespeed
導入方法などは以前のエントリで紹介しました.ただし,不具合があったので,いくつかの設定を変更しました.現在は以下の設定で動かしています.
ModPagespeedEnableFilters remove_comments ModPagespeedEnableFilters collapse_whitespace,elide_attributes ModPagespeedEnableFilters move_css_to_head ModPagespeedEnableFilters extend_cache
rewrite系を無効にしました.変更があってもキャッシュが効いていて,反映されなかったり,いくつかのjQueryが機能しなくなったりしたので,外しました.カスタマイズが終わって,安定運用期になったら,また有効にしてみようかなと思っています.
mod_pagespeedを導入してみた
- 2010年12月08日
- サーバ
一時前に話題になったmod_pagespeedを導入してみた.導入環境はUbuntu10.04amd64です.
$ wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-beta_current_amd64.deb $ sudo dpkg -i mod-pagespeed-beta_current_amd64.deb $ sudo service apache2 restart
設定ファイルも万全なので,簡単ね!色々な設定項目があるみたいですが,こんな感じに設定してみました.
ModPagespeedEnableFilters remove_comments ModPagespeedEnableFilters collapse_whitespace,elide_attributes ModPagespeedEnableFilters rewrite_javascript ModPagespeedEnableFilters move_css_to_head ModPagespeedEnableFilters combine_css,rewrite_css ModPagespeedEnableFilters extend_cache
劇的に速くなったという感じはないですが,いい感じです.CPUが暇しているので,このぐらい使ってあげないとね.
さくらVPSに移設しました
- 2010年11月22日
- サーバ
こんにちは,4403 is writtenのなれの果てです.いやなことがあったので,4403 is writtenは閉鎖して,新しく4403 is not primeを始めました.「いやなこと」というのは言うにはばからず,Movable TypeからWordpressへの移行が上手くいかなかったことです.色々な方法を試しましたが,記事インポートは上手くいくものの,パーマリンクを維持することができませんでした.何故か番号が飛ぶ・・・.まぁ,それだけが理由かどうかはしりませんけど.
というわけで,XREAの更新が12月に迫っていて,しかも度々高負荷になってイラッ☆としていたので,これを機にさくらVPSに移行しました.XREA程度のレンタルサーバに比べれば,圧倒的に快適です.さくらのレンサバに比べても,自由度が高くて遊び心がくすぐられます.まぁ,移設の理由がそれだけかどうかはしりませんけど.
さくらVPSを使うに当たって,OSは使い慣れたUbuntu10.04amd64を選択しました.カスタムOSを選択すると,イメージから初期状態が復元されるのかと思ったら,普通にテキストインストーラが起動しましたよ!ちょっと驚いた.で.基本的に「さくらVPSだから」という特殊な設定は何もないので,Ubuntuがインストールされてしまえば,あとは普通のUbuntuと変わりません.そのため,別段に何か特殊なことはしていません.
一応,やったような気がすることを箇条書き.
- SSHをインストールして基本的な設定をする.
- LAMP環境の構築.
- ufwでSSHとApache Fullを許可にする.
- Subversionを入れる.
- awstatsを入れてログを可視化してみる.
- virtualhostを駆使して複数ドメインを運用する.
- apcとmemcachedを入れてみる.
- muninを入れてサーバ監視してみる.
そんなもんです.唯一激しく躓いたのは,apacheの部分で,デフォではmod_rewriteが有効になっていないので,a2enmod rewriteしたくらいかな.このサーバではWordpressを中心に,PHPをメインとして活用していく予定なので,apcに64MB割り当ててます.余ってますけど.さくらVPSはメモリが512MBですが,apcに64MB割り当てても,今のところ余裕で動いています.MySQLのチューニングはまだしてません.というか,Wordpressの記事数が少なすぎて,実用レベルでのチューニングがまだできません.頑張って記事を書いて,頑張って訪問者を増やさないとね!
Home > タグ > apache