mod_rewriteでディレクトリごとに読むファイルを分ける。
11月 15th, 2011
apiのとき、api以下のindex.phpへ渡すとき。
RewriteCondを2回書かないとうまく処理されない。
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^api/.+$ api/index.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
TIME_WAIT httpdが詰まる件 3
2月 24th, 2010
なかなか手ごわいです。。。
いろいろステータスをみると
・mysqlの接続が閉じてない。(queryは完了している模様)
・phpが終了しない。(?)
あたりがポイントなのですが・・・
(--;適当に作っているので改善点は多々あるのですが
とりあえず・・・相変わらず詰まってしまうので、なんだかよくわかりませんが、
netstat -na でみたときに。
tcp 0 0 ::ffff:112.78.999.999:80 ::ffff:61.121.999.999:58583 TIME_WAIT
のようなTIME_WAITが多く残っているようでしたので、とりあえず。この辺を切ってみる。
参考
> http://www.linux.or.jp/JF/JFdocs/Adv-Routing-HOWTO/lartc.kernel.obscure.html
> /proc/sys/net/ipv4/tcp_tw_recycle
> TIME-WAIT ソケットを高速にリサイクルできるようにします。 デフォルト値は 1 です。 これは専門技術者のアドバイスか要求がなければ、変更すべきではありません。
ということでしたが 0 になっていたので 1 を設定
# echo ‘1′ >/proc/sys/net/ipv4/tcp_tw_recycle
明らかに早く切れるようになりました。
これでまた様子見です。。。
もしかしたら、改善したかも・・・???
httpd reload は HUPシグナルを送る
2月 13th, 2010
/etc/init.d/httpd reloadは
HUPシグナルを送ります。
# /etc/init.d/httpd status
httpd (pid 15558 15546 15537 15493 15486 15485 15483 13372 3796) を実行中…
# /etc/init.d/httpd reload
httpd を再読み込み中: [...]
httpdプロセスがとまる件2
1月 4th, 2010
httpdプロセスが停まってしまう件
を書きましたが、残念ながらたまり続けます。。。
close_waitについては、ちゃんと消えているのですが、httpdプロセスが消えてくれません。
yahooやgoogleのcrawlerが多かったのですが、特に相手が悪いわけではなく原因は少しわかってきました。
タイムアウトするリクエストのタイムアウトを待たずにリトライして別プロセスで新しいものを取得すると・・・発生するようです。
とりあえずもう少し処理を修正してタイムアウトがちょっとでも起きないようにして行きたいと思います。
MySQLとの接続関連の何かがプロセスを切らせない何かがあるようです。
しかし slowqueryもないのでわからない。。。
httpdプロセスが停まってしまう件
12月 30th, 2009
CLOSE_WAITは消えてもプロセスが残っているパターンが・・・
200を返しているときのものも停まってしまっていることは確認しました。。。
とりあえず httpdを更新
# rpm -qa | grep httpd
httpd-devel-2.2.3-22.el5.centos
httpd-manual-2.2.3-22.el5.centos
httpd-2.2.3-22.el5.centos
#
================================================================================
Package Arch Version Repository Size
================================================================================
Updating:
httpd [...]
CLOSE_WAIT で詰まってます。
12月 29th, 2009
Databaseへの接続の問題などいろいろ絡んでいるようですが、
apacheのプロセスがずっと占有されて止まってしまったのでなんだろうと・・・
諸所のTIMEOUTも効いていないようで。
server-statusを見るとSSが延々増えて切れてくれないプロセスがありました。
Srv PID Acc M CPU SS Req Conn Child Slot Client VHost Request
0-0 2176 0/6/197 _ 30.33 2 3150 0.0 0.00 0.73 65.55.106.229 auction.as4.org GET /aucget/0/0/%E3%82%A2%E3%82%A4%E3%82%B7%E3%83%BC%E3%83%AB%E
1-0 1007 0/0/126 W 0.00 1160 0 0.0 0.00 0.53 123.198.97.167 auction.as4.org GET /aucget/0/0/%E3%83%87%E3%82%A3%E3%82%BA%E3%83%8B%E3%83%BC%E
2-0 1936 0/5/196 W 0.40 283 0 0.0 0.00 0.83 66.249.67.23 auction.as4.org GET /aucget/0/0/%E3%83%AB%E3%82%A4%E3%82%B9%E3%83%BB%E3%83%8A%E
3-0 1383 0/7/144 W 0.16 791 0 0.0 0.04 0.60 66.249.67.23 auction.as4.org GET /aucget/0/0/%E3%83%9D%E3%83%BC%E3%83%AB%E3%83%BB%E3%82%BD%E
4-0 2295 0/1/200 _ 0.06 2 458 0.0 0.00 0.83 66.249.67.23 auction.as4.org GET /aucget/0/0/BDCP HTTP/1.1
5-0 2158 0/7/197 _ 29.99 3 96 0.0 0.00 0.67 67.195.111.165 auction.as4.org GET /item/0912/v130889862 HTTP/1.0
6-0 2309 0/0/189 _ 30.73 3 31698 0.0 0.00 0.61 67.195.111.165 auction.as4.org GET /item/0912/v130889862 HTTP/1.0
7-0 31919 0/1/10 W 3.46 2363 0 0.0 0.00 0.04 67.195.111.165 auction.as4.org GET /aucget/0/0/M40101 HTTP/1.0
8-0 2217 0/5/167 _ 0.23 2 1556 0.0 0.00 0.53 67.195.111.165 auction.as4.org GET /aucget/0/0/DGD-100D HTTP/1.0
9-0 - 0/0/124 . 30.12 23 0 0.0 0.00 0.47 ::1 auction.as4.org OPTIONS * HTTP/1.0
10-0 - 0/0/89 . 0.37 0 0 0.0 0.00 0.36 ::1 auction.as4.org OPTIONS * HTTP/1.0
11-0 2138 0/9/56 W 57.18 0 0 0.0 0.06 0.17 218.217.117.152 auction.as4.org GET /server-status HTTP/1.1
12-0 2202 0/3/44 _ 30.22 6 2386 0.0 0.02 0.18 66.249.68.98 deepthink.net GET /wpricer/0/0/XN-220SA HTTP/1.1
13-0 2224 0/2/12 W 0.27 14 0 0.0 0.00 0.01 66.249.67.23 auction.as4.org GET /aucget/0/0/%E3%83%95%E3%82%A7%E3%83%AC%E3%83%BB%E3%83%9E%E
# netstat -na
をしたところ CLOSE_WAITで止まっていました。
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address [...]
ServerAlias 2つのドメインを設定する。
11月 22nd, 2009
blog.bbtune.com と www.blog.bbtune.com の両方で同じコンテンツを表示するには
以下のように ServerAliasを設定する。
<VirtualHost *:80>
ServerName www.blog.bbtune.com
ServerAlias blog.bbtune.com
</VirtualHost >
Apacheクックブック 第2版 ― Webサーバ管理者のためのレシピ集