"apache" カテゴリのページ

ApacheでSSL通信(https)を設定する

SSL通信(https)は、現代のWebサーバーには不可欠な技術です。

特に、個人情報を扱ったり決済機能を扱ったりするようなサービスを開発する場合はなおさらです。

そんなとき、SSL通信を使いますよね。
証明書は、第三者発行機関から入手する必要がありますが、有料のところがほとんどです。趣味の範囲で楽しむ程度なら、購入せず、「 自己証明書 」というものを使うので十分です。

これなら、どこにも依頼せず、無料でhttps通信を実現できます。

Linuxでプロセスが死んだらどうなるか?

LinuxでWebサーバなどを立ててCGI運用している場合、 よくCGIから子プロセスを生成してCGI外プログラムを実行することは良くあると思います。 そんなとき留意しないと行けないことがあります。

  1. Apacheでは、ある一定回数CGIが応答するとpreforkしていたプロセスが終了するように できている。
  2. Linuxでは、親プロセスが終了すると子プロセスはinitプロセスにつながれる。

Apache: CGIでシグナルハンドラを使用する方法

Apache2系ではデフォルトのプロセスモデルが「Worker + Prefork」方式になりました。 簡単に言うと、

  • HTTPリクエストに応答するWebサーバープロセスを予め複数起動しておくことで プロセス生成時間を排除することで応答時間(スループット)を短縮しようというのがPrefork。
  • 当該プロセスからさらに応答スレッドを複数生成して大量のリクエストに応答しようというのが Worker。
ということになります。

上記モデルが採用されたことでApacheはさらに応答速度、同時応答数の性能を増加させた 訳ですが、一方で隠された仕様変更も生じています。
CGI内でSIGALRMシグナルを使用できないというのもその代表例です。

ApacheでDigest認証を設定する方法

ある特定のWebページにパスワード認証を掛けるとき、一番簡単なのものとして Basic認証があります。しかしこれはパスワード情報をそのままの状態でサーバに送信して しまうため非常に危険です。
これに対して、パスワードを暗号化して送信するのがDigest認証です。

Webサーバー側でタイムアウト後にプロセスを停止させる方法

タイムアウトという現象をよく自分のブラウザで見ることがあると思いますが、 これはブラウザ側で通信が時間内に完了しなかったために発生しているものであって、 サーバー側からエラーを送出しているわけではありません。
これをきちんと理解しておかないと、100MBのファイルをサーバーにCGI経由でアップロード させようとしたらブラウザがタイムアウトとなってできません。。。 ということになってしまいます。

ですので、よくタイムアウトを理解する必要があります。

Apacheをクラックされにくくする設定

適当なURLを入力してNot Foundを出力させたりすると、Apacheのバージョンが フッターに表示されますよね。実はこのバージョンが分かると、同じバージョンの バグを調べることによって簡単にハッキングができてしまします。

apache経由でC言語プログラムのコア(core)を吐く方法

webサービスで処理速度を考慮すると、一部C言語で実装していることがよくあると思います。
そんなとき、Cプログラムにバグがあったらどうやって原因を突き止めるでしょうか? まずは、apacheのエラーログをチェックしますよね? エラーログは、Debianなら/var/log/apache2/error.logに格納されていますので、以下のようにして 最近のエラー情報を閲覧できます。

apacheで文字化けが起きたときの対処法

2010/02/14

デフォルトエンコーディングがUTF-8のシステムで、S-JISのHTMLをホスティングするときに、 いくらHTML内にDOCTYPEやmetaタグにて「charset=shift_jis」と書いてあっても文字化けする〜。 と困った経験はありませんか?

カテゴリー