- 締切済み
サーバーでのCGI起動時間等の制限方法
サーバーを運用しているのですが、以下のように設定するには、どのようにしたら良いのでしょうか。 1、CPUの割り当て時間を制限する。(一定時間でタイムアウトする。) 2、1つのスクリプトが実行中に使用できるメモリ量を制限する。 これらは、おそらく「Cシェル」の「limit」コマンドで行うものとの認識を持っているのですが、それでよろしいでしょうか。 Apacheの設定に「RLimit~」というディレクティブがありますが、これらはApache本体の制限で、ユーザーごとの実行制限ではない、という認識を持っているのですが、それで間違いないでしょうか。 3、1ユーザーが、一度に起動できるCGIの数を1つにする。 これは、どのように設定すれば良いのでしょうか。 ユーザーの認識が問題となるので、「suEXEC」となにか関係があるのでしょうか。 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- punchan_jp
- ベストアンサー率55% (155/280)
あんまり詳しくないのですが、RLimit* の解釈はだいたいそういう 認識でいいんだと思います。CGIごとに制限するには、そのCGIのプ ログラム側でなにかをしてやる必要がありそうです。 perl で直接いじれたらいいんですが、どうも具合のいいのはなさ そうですね。(syscall を呼べばできなくはなさそうですけど) csh か、zsh, bash あたりを一度呼んでから、その中で目的のCGI プログラムを起動することになりそうです。 あと、ユーザごとのCGI数の制限に関しては、なにを1ユーザとする かですね。クライアントのIPアドレス1個が1ユーザなのだとすると、 IPアドレスごとにロックをかけて、自分が2ユーザ目以降なら停止 するとか終了するとかするように作ることになると思います。 直接的な解決につながるかはわかりませんが、apache関連のメーリ ングリストのアーカイブから参考になりそうなのを拾いましたので、 たどっていってみてください。 http://apacheml.ecc.u-tokyo.ac.jp/ml/msg00380.html http://apacheml.ecc.u-tokyo.ac.jp/ml/msg05329.html