タグ「Apache」が付けられているもの


apache 2.4.17以降でmod_http2有効にすると、送信バイト数が正しく記録されない? のその後

以前書いていた HTTP/2 が有効な apache2 2.4.18 で、相手に送信したコンテンツの送信バイト数がうまく記録されなかった件、

改めて、 mod_http2 有効化以降のログもチェックし直してみたところ、有効化の直後から送信バイト数が "0" でロギングされてて、途中 2.4.17 → 2.4.18 のアップデートがあったにもかかわらず、"0" のままという状況が継続していた模様。

ということで、バグレポートしてみたのだけど、fix されるといいな…。

[From apache 2.4.17以降でmod_http2有効にすると、送信バイト数が正しく記録されない? - Soukaku's HENA-CHOKO Blog]

Debian のバグトラッカーに投げたのだけど、そこで報告したから必ず直るというわけではないので、改めて Apache の bugzilla にも同じようにレポート投げてみたところ、mod_http2 のメンテナから「次のリリースで直すよ」という回答をもらっておりました。

Thanks, that did indeed slip my attention. This is fixed in revision 1725496 in trunk. It will be back ported to the next 2.4.x release.

[From Bug 58871 ? HTTP/2 when in use, response size is recorded in the zero byte If you set the %O in LogFormat]

で、 2.4.19 で修正されました。(実際のリリースとしては 2.4.19 は欠番で、 2.4.20 で対応。)

*) mod_http2: bytes read/written on slave connections are reported via the
optional mod_logio functions. Fixes PR 58871.

[From https://archive.apache.org/dist/httpd/CHANGES_2.4.20]

Debian でも 2.4.20 のパッケージでアップデートをしたところ、当初出ていた問題は解消したように思えたのですが…。

apache 2.4.17以降でmod_http2有効にすると、送信バイト数が正しく記録されない?

HTTP/2 対応させてから 10 日ほど経過したわけですが…。

続いては HTTP/2 対応。これは、SSLが有効であることと、Apache HTTP Server の 2.4.17 がインストールされているのが前提です。

[From 自分んとこのWebサイトを常時SSL対応にして HTTP/2 にも対応させてみた - Soukaku's HENA-CHOKO Blog]

特に大きな問題もないなぁ~、と思っていたのだけど、ログを流し見していて気になる点、発見。
HTTPステータスコードに続けて、本来であればレスポンスとして送信したデータのバイト数が記録されるはずが、 "0" になっている。

203.0.113.60 - - [24/Dec/2015:00:39:58 +0900] "GET /~soukaku/images/eyecatch0002.jpg HTTP/2" 200 0 "https://www.downtown.jp/~soukaku/archives/2014/0217_004838.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/601.3.9 (KHTML, like Gecko) Version/9.0.2 Safari/601.3.9"

HTTP/1.1 であれば、下のログのように送信バイト数には "0" 以外の数値が入っている。

198.51.100.20  - [24/Dec/2015:10:28:42 +0900] "GET /~soukaku/images/eyecatch0002.jpg HTTP/1.1" 200 44068 "https://www.downtown.jp/~soukaku/archives/2015/0711_171147.html" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/600.8.9 (KHTML, like Gecko) Version/8.0.8 Safari/600.8.9"

Web サーバとしてのサービス自身が止まっているわけではないし、HTTP/2 自体のアクセス比率もそう高くはないので、困った状況になっているわけではないけど、HTTP/2 でなければ "0" とはなっていないのだから、やはり動作としておかしい。
#awststs のようなアクセス統計ツールでの集計結果が正確なものでなくなる、という点では困るな…。

ドキュメント自体をチェックしてみると、

httpd 2.0 では 1.3 とは異なり、%b と %B フォーマット文字列はクライアントに送信されたバイト数そのものではなく、 HTTP レスポンスのバイト数です (これらは異なるもので、たとえば、 コネクションが途中で破棄された場合や、SSL 使用時に一致しません) 。 mod_logio で提供されている %O フォーマット文字列で、ネットワーク経由で実際に転送されたバイト数を 記録できます。

[From mod_log_config - Apache HTTP サーバ バージョン 2.4]

となっており、確かに実際の設定ファイルでも LogFormat ディレクティブの送信バイト数の位置には "%O" が指定されている。

root@vps2:~# grep ^LogFormat /etc/apache2/apache2.conf
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %B \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

目的の判らんhttpアクセスが有ったので、403を返すようにしてみた

先月の中ぐらいから、急にWebアクセスが増えてきて「おっかしいなぁ〜」と思い、ログを漁ってみたら

2620:108:700f::3270:2868 - - [03/Mar/2013:07:42:28 +0900] "GET / HTTP/1.1" 200 13416 "-" "curl/7.24.0 (i386-redhat-linux-gnu) libcurl/7.24.0 NSS/3.12.10.0 zlib/1.2.3 libidn/1.18 libssh2/1.2.2"
2400:6700:ff00::36f9:bfad - - [03/Mar/2013:07:43:31 +0900] "GET / HTTP/1.1" 200 13416 "-" "curl/7.24.0 (x86_64-redhat-linux-gnu) libcurl/7.24.0 NSS/3.12.10.0 zlib/1.2.3 libidn/1.18 libssh2/1.2.2"

とか

198.204.227.26 - - [03/Mar/2013:11:21:00 +0900] "GET / HTTP/1.0" 200 13435 "https://www.downtown.jp/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows ME) Opera 7.11  [en]"
198.204.226.250 - - [03/Mar/2013:11:24:16 +0900] "GET /bbs/index.cgi?mode=allread&pastlog=0057&no=3290&page=0&act=past HTTP/1.0" 200 6608 "https://www.downtown.jp/bbs/index.cgi?mode=allread&pastlog=0057&no=3290&page=0&act=past" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; T312461)"

というのが、アクセスが増えた原因というのが判った。

mod_spamhaus を使い始めた

何日か前だったと思うのだけど、いつものようにaptitude -uを実行して、更新されたり追加されたパッケージを、つらつらとチェックしている時に"libapache2-mod-spamhaus"というapache2のモジュールが新規追加パッケージにあるのを発見。
名前に"spamhaus"と入っているので、間違いなく有名なDNSBLであるspamhausを使ったアクセス制御なんだろうなぁ、と思っては居たのだけど、その時はインストールせずにスルー・・・。

実際のところ、掲示板へのスパムな書き込みには、ちょっと手を焼いていたところもあるので、インストールしてみました。
#POSTを制限するために、.htaccessファイルをちまちまメンテナンスするのが、面倒で面倒で・・・。

mod_rewriteでURLを書き換える

先日やったテンプレート変更の時に、カテゴリーを任意の順番で並べるPluginというのを入れ直したのだけど、その関係で今まで大文字小文字混在だったURLが

https://www.downtown.jp/~soukaku/archives/Yota_Banashi/Camera/2008/08/27-2257.html

小文字に統一

https://www.downtown.jp/~soukaku/archives/yota_banashi/camera/2008/08/27-2257.html

されてしまったので、それを何とか補正しようと考えて、apacheのモジュールのひとつであるmod_rewriteを使ったURL書き換えを試してみた。
サーバ上には、どちらのURLでアクセスされても、表示すべきファイルはあるのだけど、大文字小文字混在の方は古いテンプレートはき出されているし、一部のエントリーに文字化けが残ったままだったりというのもあって、新しい小文字で統一されたURLの方に誘導しようと思った次第。
トラックバックした先のリンクとか、検索エンジンのクロールの結果が切り替わりを、こちらから制御出来ないというのも,やってみようと思った理由ではあります。

mod_perl2を有効にしてみる(のつづき)

で、前回mod_perl2を有効にして、丸二日ほど経過したわけですが、エントリーの再構築で1回タイムアウトしたぐらいで、ほぼ問題なく動いてくれているようです。

と、ModPerl::Registryを呼び出すだけの設定を追記して、apache2を再起動してみた。さてどうなるのやら。

Soukaku's HENA-CHOKO Blog - mod_perl2を有効にしてみる

まぁ、その後もググって最適な設定はないかと調べていたんですが、とりあえず

mod_perl2を有効にしてみる

前回は、ググった結果を追記したりして、色々やってみたけど、

#こないだ、サーバ側のmod_perl化しようとして、うまく動いてくれなかったしなぁ。

Soukaku's HENA-CHOKO Blog - Movable Type 4.15β

今回はシンプルに

eswat2:/etc/apache2# more mods-enabled/perl.conf
# This file is a placeholder; you can safely ignore or delete it.
PerlModule  ModPerl::Registry

と、ModPerl::Registryを呼び出すだけの設定を追記して、apache2を再起動してみた。さてどうなるのやら。

Apache2で文字化け

自宅で動かしているサーバ、あるボランティア団体のWebコンテンツが置いてあるんですが、そこを見に行くと「文字化けする。HTTP Request Header見ると、Content-TypeでUTF-8が出てるよ〜。」という連絡をもらったので、色々調べてみたら・・・。