nDiki : .htaccess

.htaccess

Apache においてディレクトリ毎に設定を変更するための「分散設定ファイル」のデフォルトファイル名

AccessFileName ディレクティブによってファイル名を変更することもできるが、変更されることはほとんどない。

スポンサード リンク

2005年9月12日 (月)

nDiki のコメント欄にコメントスパム

更新チェックをしたら、nDiki にコメントが入っていたので「どれどれ」と見てみる。

うぎゃー。

丁度攻撃を受けているところやんけ。

NaneyOrgWiki にもリンクスパムな書き込みがちょくちょくあるのだが、幸い絨毯爆撃的なものは受けていない。 今回もそんな感じでたかだか数十回ぐらいの書き込みだろうと、.htaccess で接続元のIPアドレスを deny しつつコメントを消していく。

……はっ、速い。

追いつかん。終わらん。

マジ攻撃ですか。IP アドレスもかなり散らしてきてますか。 あきらめて、CGI プログラムを移動して書き込みできないように。

その後もしばらく連続アクセスがあったが、途中で気がついたのか止まった。

ということで、現在一時的にコメントの全文表示・新規不能状態。

くっつき BBSを使っているのだが、まさかこれが攻撃されるとは。 そろそろ DiKicker 自体にコメント機能を直接実装しようとしていたところだったのだが、いろいろ対策を打たないといけないと思うと萎えるなあ。

スポンサード リンク
[ 9月12日全て ]

2006年3月3日 (金)

サーバ高負荷状態につき DiKicker 機能修正とサーバ設定変更

www.naney.org をホスティングしているサーバが重いと思ったら、同じサーバ上のあるユーザの CGI プログラムが5プロセス無限ループしてるっぽい……。 load average 20前後。

あおりを受けて、nDiki が大変なことになっている。

nDikiSpeedyCGI を使っているのだが、バックエンドの speedy_backend が捌ききれず、フロントエンドの speedy が大量に待ちに入ってしまっている。

MaxBackends を調整しても駄目(下手にバックエンドプロセス数を増やしても、結局処理が追いつかない)。

ということで急遽対策。

高負荷時にはてなブックマークへのアクセスを停止

load average が高い時には、はてなブックマーク上の検索結果を表示させるために行なっているはてなブックマークへのアクセスを休止するように変更。 24時間に設定してあるキャッシュの有効期限が切れていても、高負荷の時にはアクセスにいかないようにする。

これで DiKicker の処理時間を短縮。相手側サーバへの負担も軽減。

Google Desktop からのアクセスを一時的に拒否

おかげ様でここ最近 nDikiRSS へのアクセス数が増えてきている。 ありがたい事である。

しかしながら DiKickerRSS レスポンスは、あまり賢くなく毎回データベースから最新記事情報を抽出して生成しているため、それほど処理が速くない。

なのでアクセス頻度を高くしている RSS リーダがどこかで同時に起動しているとちょっとしんどい。 特にここ最近 Google Desktop からのアクセス数が増えている感じ。

さすがに今日はサーバの負荷が高く処理が追いつかなくてどうしようもないので、一時的に Google Desktop を拒否することに。

.htaccess に設定を追加。

 BrowserMatch "Google Desktop" denybrowser
 deny from env=denybrowser

近日中に、RSS 処理を改善してすぐに解除する予定。

robots.txt に Crawl-delay: を追加

効果があるかどうかは不明だが、Crawl-delay: に対応するというクローラ (Slurp、msnbot) 向け設定を追加。

 User-agent: Slurp
 Crawl-delay: 20

 User-agent: msnbot
 Crawl-delay: 20

アクセス数としては Googlebot と Slurp がダントツ。 しかし Google は無下にする訳にもいかないしなぁ。

[ 3月3日全て ]

2006年7月22日 (土)

Rubric でプライベート SBS を立てるも 0.140 では日本語に不具合

入社してから社内情報共有の一環として

といろいろ手をつけてきた。 次に狙っているのは SBS である。

Wiki社内 Blog に書くほどではないけれどメモ程度にブックマークしておきたい URL を、気軽に晒せるようにするのが目的。

はてなブックマークのような公開サービスは

  • タグ・コメント・傾向などが外に出るのはよろしくない
  • あるいは、それを気にして活用されない
  • そもそも社内リソースについてはブックマークできない

という点から、今回は利用できない。

ということで社内に SBS を設置したい考えている。

最初は Scuttle にしてみようと思ったのだが、PHP ベースであるのと MySQL を使うというところで気遅れしている。 いや SQLite でもいけそうらしいということで、実は Debian でちょっと試そうとしたのだが、テーブル作成の SQLMySQL 用で、これを修正するのが面倒なので断念。

次に Perl + SQLite で動く Rubric を試してみることにした。

Rubric 0.140

Rubric は CPAN にあがっているので CPAN.pm から install Rubric でインストールできる。 モジュールをインストールしたら、セットアップ。

  1. CGI プログラムを動かすディレクトリを決める (以下 $RUBRIC)
  2. Rubric tarball の bin/rubric.cgi を $RUBRIC/ にコピーし、必要なら #! を修正する。
  3. Rubric tarball の templates ディレクトリを $RUBRIC/ にコピーする。
  4. Rubric tarball の style/rubric.css を $RUBRIC/ にコピーする。
  5. Rubric tarball の etc/rubric.yml を $RUBRIC/ にコピーして環境に合わせて編集する。
  6. データベースを初期化する。0.140 には makedb.pl が同梱されていないので、0.13_01 の bin/makedb.pl を参考に perl -MRubric::DBI::Setup -e 'Rubric::DBI::Setup->setup_tables' で初期化する。ちなみに 0.140 付属の rubric コマンドで rubric db -s してみたが、これはうまく動かなかった。
  7. 必要に応じて .htaccess を作成・編集し rubric.cgi を CGI プログラムとして実行できるようにする。またその他アクセスされたくないファイルを deny するようにしておく。

これで OK。

rubric.cgi にアクセスしページが表示されればひとまず成功。 メニューの「register」から、ユーザ登録する。 確認用のメールが届くはずだが、面倒くさいのでこれを待たずに

 rubric user -a ユーザ名

でアクティベートする。

Rubric の HTML フォームからのブックマーキングは成功し、うまく動いているようである。 ただし、日本語の処理はどうもよくない。 title や description が化ける。 惜しい。

基本的には UTF-8 ベースでうまくいきそうなのだが、どこかで化けるようだ。 ちょっと手を入れれば直るかなと思ったが、化けるところと化けないところとがあるので逆に直す場所が多そうなので今日はやめておくことにした。

とりあえず Rubric はおいておいて、他のものも試してみることにするか。

[ 7月22日全て ]

2007年4月5日 (木)

Referer spam は # がお好き?

Referer spam が相変わらずきている。 今まで個別に .htaccess で拒否している。

ところでログを見ていてしばらく前から気になっていたのだが、なぜだか知らないがうちにくる Referer spam

 http://www.example.com/#

のような最後に # がついた(通常は送られてこない) Referer URL を送ってきている。

サヨウナラ。

 SetEnvIf Referer "http://[^/]+/#" denyreferer
 deny from env=denyreferer
[ 4月5日全て ]

2008年8月23日 (土)

フィード向け AdSense を追加してみた

Google AdSenseで「フィード向け AdSense」が利用可能になったので、nDiki に追加してみた。

Google AdSenseにログインして nDikiURL を指定してフィードを登録すると、FeedBurner 上にフィードが作成される。

www.naney.org 側では nDiki のフィードへのアクセスがきたら、FeedBurner 上のフィードへリダイレクトするように設定する。 ただし FeedBurner から巡回がきた際にはリダイレクトせずに、nDiki のオリジナルフィードにアクセスさせる。

www.naney.org のトップディレクトリの .htaccess に以下を追加。

 RewriteEngine on
 RewriteCond %{HTTP_USER_AGENT} !FeedBurner
 RewriteRule ^diki/d/rss\.rdf$ http://feedproxy.google.com/nDiki [L,R]

思ったよりあっけなく設定終了。

今のフィード URL が既にフィードリーダーに登録してもらっていることを考えて nDiki (DiKicker) に「FeedBurner 向けに別 URL でのフィード出力機能」と「現在のフィード URL からのリダイレクト機能」を追加する必要があるなと思っていたのが、mod_rewrite が使えれば手間無しだった。

nDiki のフィードと同様の内容に広告が挿入されたバージョンのフィードが http://feedproxy.google.com/nDiki で表示されることを確認。

せっかくなので FeedBurner のレポート機能もチェックしてみることにしよう。

[ 8月23日全て ]

2008年8月30日 (土)

XAMPP デカすぎなので Uniform Server をチョイス

デモ用 Web サイトのとりまとめ。 必要な時に ZIP ファイルを Windows 上で展開してすぐ使えるようにしておきたい。 インストール不要Web サーバも一緒に入れておきたい。

ということでポータルな Apache を物色。WAMP である必要はなし。 MicroApache が小さくて良さそげなのだが公式サイトがつながらない。

XAMPPXAMPP Lite でもデカすぎ。

ということで今回は Uniform Server 3.5 をセットにすることにした。 ZIP した状態で 14MB ぐらい。

展開して Server_Start.bat を実行すれば Apache が起動する。 デフォルトで W ドライブを仮想ドライブとして subst して動く。 違うドライブに割り当てて起動したい場合は Disk Start.vbs を使う。ダイアログが表示されるのでそこでドライブレターを指定すれば OK。

止める時は Stop.bat。

あとは udrive/www 以下に Web コンテンツを置けば良い。 udrive/www/.htaccess で 127.0.0.1 からしかアクセスできないようになっているので必要があれば変更する。

まとまったら ZIP ファイルにしてどこかに置いておけば、他の PC でも展開するだけでデモ用 Web サイトを準備できる。

Stop.bat の実行を忘れやすいので注意。

[ 8月30日全て ]

2009年12月23日 (水)

www.naney.orgさくらのレンタルサーバへ移転

naney.org メールサーバの移転に次いで、Web サーバの移転作業。

静的コンテンツのアップロード

現行 Web サーバUnisonファイル同期している Web コンテンツを、さくらのレンタルサーバUnisonファイル同期

WiKickerインストール

nDiki 用に DiKicker (WiKicker) を make install。

 %bash
 $perl -MCPAN -e mkmyconfig
 $perl -MCPAN -e shell
   o conf makepl_arg PREFIX=/home/naney/local/WiKicker
   o conf mbuildpl_arg --install_base=/home/naney/local/WiKicker
   o conf commit
   notest install CGI::SpeedyCGI

 $tar zxvf WiKicker-0.420.tar.gz
 $cd WiKicker-0.420
 $export PERL5LIB=$HOME/local/WiKicker/lib/perl5/site_perl/5.8.9
 $perl Makefile.PL PREFIX=$HOME/local/WiKicker
 $make
 $make install

以前きっちり Module::InstallMakefile.PL を作っておいたおかげで、比較的スムーズにインストールできた(自画自賛)。

ちょっとはまったところは CGI::SpeedyCGI の make test を実行する(される)と SSH 接続がサーバ側から切られてしまうという現象にあったところ。 テスト用に大量にスクリプトが起動されるの検出して自動的に kick されたのだろうか。

.htaccess の修正

さくらのレンタルサーバでは .htaccess Options が使えないようなので削除。 ExecCGI や MultiViews が有効になっているようなので問題なし。

いつくかのスクリプトの修正

Perl 5.005_03 用に書いてあったスクリプトについて、Perl 5.8.9 で文字化けしないように utf8 まわりを修正。

cron 設定

1時間毎に実行したい処理を列挙するシェルスクリプトを1つ作って、コントロールパネルから1時間毎に実行するように設定。

現行サーバでは任意の crontab を設定できたので、1時間毎はちょっと物足りない。 おいおい負荷にならない範囲で、外部から定期的に HTTP アクセスして処理を定期的に実行できるようにもするかな。

DNS 設定変更

まだ動いていないスクリプトもあるけれど(大きいところだと NaneyOrgWiki (Wiki))現行サーバの解約日もせまっているので、サーバ移転させてしまうことに。

VALUE-DOMAINDNS サーバ設定を変更し www.naney.orgさくらのレンタルサーバにアクセスできるように A レコードを変更。

今のところ特に重い等もなく順調。 現行サーバでは深夜非常に重くなる時間帯があったのだが、それが無くなるのが嬉しい。 また容量が100MB*1から10GB*2になったので心理的にセーブしなくて良くなった。

年内に移行できて良かった良かった。


[ さくらのレンタルサーバ プレミアム ]

*1メール等別

*2メール他を含む

[ 12月23日全て ]

2010年11月17日 (水)

gitweb 設置

この間 Gitインストールしたサーバに gitweb を入れて Git を使ってない人にもファイルを見てもらえるようにした。

以下インストールメモ。

/home/naney/public_html/git/ 以下に置いて http://サーバ/~naney/git/ 以下でアクセスできるようにしている Git リポジトリを、Web ブラウザから http://サーバ/~naney/gitweb/ でブラウズできるように /home/naney/public_html/gitweb/ 以下に配置する。

 git clone git://git.kernel.org/pub/scm/git/git.git
 make GITWEB_PROJECTROOT=/home/naney/public_html/git \
   prefix=/usr/local gitwebdir=/home/naney/public_html/gitweb \
   install-gitweb

/home/naney/public_html/gitweb/.htaccess を以下のように作成。

 Options ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch
 AddHandler cgi-script cgi
 DirectoryIndex gitweb.cgi
[ 11月17日全て ]

2011年11月11日 (金)

www.naney.org のトップページを nDiki

www.naney.org のトップページは、大学のサーバで /~naney/ として使っていたレガシーなものをたまーに修正しつつずっと置いておいたのだけれども、まあもういいでしょうということで。

302 Found で nDiki にリダイレクトするように .htaccess に設定を追加。

今は普通にできる 1+ 2 カラム構成を、当時 Web ブラウザの初期の CSS 実装互換性に悩まされつつ試行錯誤したり、Content negotiation による言語設定にあわせた出力切り替えやってみたりとかは思いで。

[ 11月11日全て ]

2016年5月20日 (金)

FeedBurner へのリダイレクトを停止

この nDiki のフィードは2008年8月から FeedBurner挟むようにしているのですが、もう特にメリットも無さそうなので外すことにしました。

.htaccess から以下を削除。

 RewriteEngine on
 RewriteCond %{HTTP_USER_AGENT} !FeedBurner
 RewriteCond %{HTTP_USER_AGENT} !feedzirra
 RewriteRule ^diki/d/rss\.rdf$ http://feedproxy.google.com/nDiki [L,R]

http://feeds.feedburner.com/nDiki の方は削除してオリジナルの方にリダイレクトさせることもできるようですがいったんそのままにしておくことにします。

去年8月にさくらのレンタルサーバ + ラピッドSSL にして HTTPS 対応した時にフィードの中の URL 処理を修正していなかった (https://naney.org/80/diki/〜 になってしまっていた)のに気がついたのでここもあわせて修正しておきました。

[ 5月20日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィでマネージャー・プロダクトオーナーをしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

follow us in feedly

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス
Process Time: 0.055404s / load averages: 0.28, 0.43, 0.56
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker