タグ

Apacheに関するsabroのブックマーク (131)

  • フロント/バックのreverse proxy構成で、指定秒数以内に必ずレスポンスを返す方法 - (ひ)メモ

    目的 フロントがHTTPリクエストを受けて、バックエンドのアプリケーションサーバにreverse proxyするような構成において、指定秒数以内に何かしらのレスポンスを返したい。 200が返せない場合は、処理を打ち切って500を返したい。 背景 フロントでApacheやNginxをreverse proxyとして使っている場合、バックエンドが無応答になってしまうと、クライアントにレスポンスが返るのはデフォルトで数十〜数百秒後(ApacheのTimeoutのデフォルトは300秒、Nginxのproxy_read_timeoutのデフォルトは60秒)になってしまいます。 通常のWebサービスではこのオーダーのタイムアウトでもいいのかもしれませんが、数秒以内に(エラーでもいいので)レスポンスを返すことが求められる環境も存在します。(最近、特に多いのではないでしょうか:P) もちろんバックエンドが

    フロント/バックのreverse proxy構成で、指定秒数以内に必ずレスポンスを返す方法 - (ひ)メモ
  • ブラウザキャッシュによる HTTP 高速化チューニング

    かれこれ一年ほど前に実施した実サービスでの apache のチューニングネタを思い出したように書いています。 以前いた部署では少ないサーバ台数で大量のリクエストを如何に処理しきるかってことに燃えていたので、静的コンテンツなどをブラウザに支障のない範囲で最大限にキャッシュさせ、サーバとネットワークの負荷を最小化させていました。 当時参考にした情報源は以下の3つでした。 どのようなレスポンスヘッダを返しておけばブラウザキャッシュを最大化できるかのテクニックがまとめられています。 ブラウザキャッシュとレスポンスヘッダ - murankの日記 Kazuho@Cybozu Labs: キャッシュの上手な使い方 [Studying HTTP] HTTP Status Code チューニングにおいて重要なのは自分自身での検証。というわけで自前で検証した結果と検証するために用意したプログラムを公開します。

  • Apache で同一IPからの接続数を制限する mod_limitipconn 設定方法

    Apache で同一IPからの同時接続数を制限するためのモジュールで有名なのが mod_limitipconn です。決められた値以上の同時接続に対しては 503 のステータスコードを返します。 CentOS であれば EPEL から RPM を導入できます。EPEL の利用設定がしてあれば yum でインストールできます。 # yum install -y mod_limitipconn 設定ファイルは /etc/httpd/conf.d/limitipconn.conf です。これを修正します。 MaxConnPerIP 10 <Location /somewhere> MaxConnPerIP 3 NoIPLimit image/* </Location> <FilesMatch "\.(zip|mp?g|iso)$"> MaxConnPerIP 1 </FilesMatch> この

  • 2010年代には Apache の mpm_prefork とか流行らない (もしくは HTTP keep-alive のメリットとデメリット) - kazuhoのメモ置き場

    HTTP の持続的接続の功罪について はじめに、HTTP の持続的接続 (keep-alive) のメリットについて。持続的接続を使うメリットは、以下の2点。 TCP 接続の確立にかかる時間の節約*1 TCP の接続と切断に必要な資源 (CPUとネットワーク) の節約 ウェブブラウザ〜データセンタ間の通信で、持続的接続を使う理由は、このうちの前者。特に太平洋を超えるようなケースだと、TCP 接続に0.2秒とかかかるので、メリットが大きい。 一方、持続的接続のデメリットは、 接続が切断されるまでの間、その接続を維持するためにコストがかかる (主としてメモリが無駄になる) という点になる。特に、1プロセス1コネクションを前提とするアーキテクチャ (例: mod_perl) だと、メモリの無駄使いが、とてもひどいことになる。 そこで、ブラウザからの接続を受ける HTTP サーバとアプリケーション

    2010年代には Apache の mpm_prefork とか流行らない (もしくは HTTP keep-alive のメリットとデメリット) - kazuhoのメモ置き場
  • Apache2+mod_proxy+持続接続で時々レスポンスが悪くなる現象のメモ - Pixel Pedals of Tomakomai

    今更な話題で恐縮ですがmiyagawaさんがものすごい勢いで教えてくれたのでメモっておきます。 mod_proxyでバックエンドにリクエストを投げたとき、リクエストのうち何個かが極端に遅いという現象が起こりました。その時のabの結果は以下。 % ab -c 5 -n 500 http://127.0.0.1:21082/ Percentage of the requests served within a certain time (ms) 50% 1 66% 1 75% 1 80% 1 90% 4 95% 1008 98% 1994 99% 2003 100% 2020 (longest request)なお、今回使おうとしたバックエンドはStarmanです。 多分こんな原因 検証不足で断言はできないのですが、多分以下のような感じ。多分。 Apache のデフォルトのServerLimi

    Apache2+mod_proxy+持続接続で時々レスポンスが悪くなる現象のメモ - Pixel Pedals of Tomakomai
  • SSL関連の情報[Apache SSL導入からクライアント認証まで]CentOS 5.2版 - ギジュツメモ

    以前書いた記事 SSL関連の情報[Apache SSL導入からクライアント認証まで] の焼き直しです、最近のOpenSSLのパッケージでスクリプトの使い勝手が変わってきたので 最近のパッケージでのコマンドをメモ 環境はCentOS 5.2をデフォルトインストールした状態とします。 RHELの5系を番環境で使っていますが基変わりません。 知っておくと便利なこと /etc/pki/tls/misc/CA.pl (opensslのユーティリティスクリプト /etc/pki/tls/misc/CA も基一緒どっち使っても良い) ① /etc/pki/tls/misc/CA.pl -newca 認証局を作成(./demoCA/cacert.pem という認証局の証明書を生成) ② /etc/pki/tls/misc/CA.pl -newreq  新しい秘密鍵(newkey.pem)と証明書要求

    SSL関連の情報[Apache SSL導入からクライアント認証まで]CentOS 5.2版 - ギジュツメモ
  • VirtualHostの設定をMySQLで管理する·mod-myvhost MOONGIFT

    mod-myvhostはApacheモジュールのオープンソース・ソフトウェア。Apacheの設定はhttpd.confで行う。テキストファイルベースなので分かりやすいが、ASPなどでサービスを提供しようと思った時に、設定がシステムから柔軟に変更できればと思うことがある。 設定はこんな感じ 例えばユーザごとにVirtualHostを分ける場合だ。サブディレクトリで命名規則を設けて行う方法もあるが、ユーザ数が増えればそれも苦しい管理になる。そこで使ってみたいのがmod-myvhostだ。 mod-myvhostはVirtualHostの設定をMySQL上で管理できるようにするApacheモジュールだ。専用のデータベースとユーザを作成して、SQLを実行してパスを動的に変更できる。ルートディレクトリを動的に指定したり、有効/無効の切り替えもテーブルのメンテナンスだけでできるようになる。 うまく切り

    VirtualHostの設定をMySQLで管理する·mod-myvhost MOONGIFT
  • KeepAliveTimeoutは2秒

    最強の看板を下ろしたミラーサーバftp.jaist.ac.jpの管理者の一人が、 このサーバにまつわるよしなしごとを語ります。 English versions of some posts on another blog. 先日行われた第二回 ライブドア テクニカルセミナーをustreamで見ました。pixivの中の人の話が聞けて面白かったです(資料と動画はこちら)。 そのときに出てきたのが、Apache HTTP ServerでKeepAliveTimeoutを2秒に設定しているという話です。MPMもpreforkでもworkerでもなくeventで運用しているとのことでした。eventならKeepAliveTimeoutを伸ばしてもいい気がするのですが、「安全のため」2秒にしているそうです。ちなみにftp.jaist.ac.jpのKeepAliveTimeoutも2秒です。 HTT

  • livedoor Techブログ : mod_rewrite マニアックス

    こんにちは。開発部の池邉です。 既に色んなところで発表していますが、ライブドアではWebサーバとして殆んどのサービスでApacheを使用しています。 Apache の特徴として、モジュールによる機能の追加、挙動の制御があります。その中でもよく利用されていながら、深く使っていくとハマりどころや謎の機能の多いモジュールとして mod_rewrite があります。Apacheの公式サイトでも以下のように書かれている事からも、家でもその点については認めているという事でしょう。 今回はそんな mod_rewrite のちょっとマニアックな拡張方法について紹介したいと思います。 Despite the tons of examples and docs, mod_rewrite is voodoo. Damned cool voodoo, but still voodoo. 変数を利用したプログラム

  • 1秒で10万行を処理するフリーの超高速なログ解析ソフト「Visitors」 - GIGAZINE

    GIGAZINEのログは膨大な量になっているため、以前まで使っていた「ApacheLogViewer」では毎日のアクセス解析に時間がかかりすぎるのと、今後のさらなるログの増大を考えると不安を覚えたので、いろいろと試してみた結果、「Visitors」というアクセスログ解析ソフトが超高速でよかったです。 大体、10万行を1秒~2秒ほどで処理してくれます。しかもサイトへの人の流れをフローチャート化することも可能。ユニークユーザーベースで解析してくれるだけでなく、検索ボットは除外したり、特定のリファラをブラックリストにしてノーカウントすることも可能。非常にすばらしいです。 また、Linux版だけでなく、Windows版も一応提供されています。やろうと思えばWindowsで解析することも可能です。 というわけで、実際にインストールして実運用するまでの手順をメモしておきます。参考になれば幸い。 ■解析

    1秒で10万行を処理するフリーの超高速なログ解析ソフト「Visitors」 - GIGAZINE
  • linuxで httpd が使ってるメモリ総量を調べる話 - kazuhoのメモ置き場

    Perl等のLLでウェブアプリケーションサーバを書いていると、普通はマルチプロセスモデル (apache なら prefork とか) で運用することになると思う。で、それらがどれだけメモリを使っているか、っていうのはチューニングにおいて重要になってきたりする (んじゃないかと思う) けど、そもそもメモリの総使用量をどうやって測定するのか。 20:20追記: PSSを使ってワンライナーで測定するのが簡単 (コメント欄参照)。kosakiさんありがとうございます。 $ sudo perl -le 'for my $p (@ARGV) { open my $fh, "< /proc/$p/smaps" or die $!; map { /^Pss:\s*(\d+)/i and $s += $1 } <$fh> } print $s' `pgrep plackup` 914325以下は初回投稿時

    linuxで httpd が使ってるメモリ総量を調べる話 - kazuhoのメモ置き場
  • Apache を daemontools で管理する - kazuhoのメモ置き場

    自作のサーバプログラムに、いちいち setuid とか setsid とかログローテート機能とか実装するのめんどくさいわけで。だから daemontools を使って管理してるわけですが、だったら、いっそ全部のデーモンを daemontools で一括管理したい。 ちょうど、reverse proxy をセットアップする機会があったので、apache を daemontools で管理する方法を備忘録をかねてメモ。 % cat /service/httpd/run #!/bin/sh APACHE_ROOT=/usr/local/apache-2.2.14 exec 2>&1 exec pgrphack $APACHE_ROOT/bin/httpd -DNO_DETACH -DFOREGROUND -c "ErrorLog /dev/fd/1" -c "Include /var/httpd

    Apache を daemontools で管理する - kazuhoのメモ置き場
  • Traffic Server Podling Status Page - Apache Incubator

    This page tracks the project status, incubator-wise. For more general project status, look on the project website. The Traffic Server project graduated on 2010-04-21 Traffic Server fills the need for a fast, extensible and scalable HTTP 1.1 proxy and cache. We have a production proven piece of software that can deliver HTTP traffic at high rates, and can scale well on modern SMP hardware. We have

  • Apacheの設定を変更し、単一IPアドレス上で複数のSSLサイトを運用する - builder by ZDNet Japan

    Apacheのバージョン2.2.12以降では、SNI(Server Name Indication)という、SSLプロトコルに対する拡張機能がサポートされているため、名前ベースのHTTPサイトを設定する場合と同じように名前ベースのHTTPSサイトを設定することが可能になっている。記事では、Apacheのこの機能について紹介する。 Apache Webサーバがバージョンアップし、成熟していくに伴い、新機能の追加やバグの修正が行われてきている。そして、バージョン2.2.12で追加された機能のうち、最も重要なものはおそらく、単一IPアドレス上で複数のSSLサイトを運用できるようにするという、長らく持ち望まれていた機能だろう。 これまでは、特定のIPアドレスに対してSSL対応のWebサイトを割り当てた場合、そのサイト1つしかSSL対応のWebサイトを運用することができなかった。つまり、IPアドレ

    Apacheの設定を変更し、単一IPアドレス上で複数のSSLサイトを運用する - builder by ZDNet Japan
  • DSAS開発者の部屋:いかにして冗長構成を作るか 〜DSASの場合〜

    DSASはいかにして可用性を高めているか、ちょっと紹介したいと思います。 今回は概略ということでざざざっと説明します。個別の構成についてはまた回を改めて紹介したいと思います。 │ │ ┌┴┐ ┌┴┐ │ │ │ │ISPの上位ルータ └┬┘ └┬┘ │ │ 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 責任分解点 │ │ ┌┴┐ ┌┴┐ │ ├─[ lb(active) ]─┤ │ │ ├─[ lb(backup) ]─┤ │ │ │ │ │ │L2├─[ Web ]─┤L2│ │SW├─[ Web ]─┤SW│ │ ├─[ Web ]─┤ │ │ │ │ │ │ ├─[ SMTP ]─┤ │ │ ├─[ SMTP ]─┤ │ │ │ │ │ │ ├─[ D B ]─┤ │ │ ├─[ D B ]─┤ │ │ │ │ │ │ ├─[ NFS ]─┤ │ │ ├─[ NFS ]─┤ │ │ │ │ │

    DSAS開発者の部屋:いかにして冗長構成を作るか 〜DSASの場合〜
  • Apacheのアクセスログをsyslog経由で出力するためのモジュールを作りました : DSAS開発者の部屋

    皆さんは、負荷分散環境でのApacheのアクセスログをどのように取り扱ってますか? 通常、Apacheのログは動作サーバ上のローカルファイルとして出力されるので、 Webサーバを同時に何台も稼働させて負荷分散を行うような環境では、それらすべ てのWebサーバのログファイルを集めなければなりません。ローカルファイルとし て出力されるということは、Webサーバの台数分だけログファイルがばらけること を意味します。考えるだけでめんどくさいですね。 KLabでは、このApacheログを2パターンを使い分けて集めています。ひとつは syslogによるリモート出力を使い、全Webサーバからのログ出力を一か所に集中さ せる方法です。これは、CustomLogディレクティブにloggerコマンドを使用するこ とで可能です。 CustomLog "|/usr/bin/logger -p local6.inf

    Apacheのアクセスログをsyslog経由で出力するためのモジュールを作りました : DSAS開発者の部屋
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
  • Apache の基本 - 色々なアクセス制御 - | バシャログ。

    すっかり秋めいてきましたね!できるならば冬場は冬眠していたい、こんにちは nakamura です。 以前、Apache の機能の中でもよく使う バーチャルホストの設定 について説明させて頂きましたが、それに負けず劣らずよく使うのがアクセス制御の機能ではないでしょうか。単純な基認証から、接続元の IP 制限、更には mod_rewrite 等を使ったちょっと複雑なものまで、Apache のアクセス制御はとても多機能で、うまく使えば実に色々な事ができます。 今回はそんな Apache でのアクセス制御について、僕の独断と偏見で決めてみました『あるあるアクセス制御ベスト 5』を解説を交えながらご紹介したいと思います。 1. 接続元を制限する( IP 制限) 基認証と並び最も頻繁に使用するアクセス制御ですね。やっている事は単純ですが、意外と根的な部分を分からずに使いがちなので、その辺りを解説

    Apache の基本 - 色々なアクセス制御 - | バシャログ。
  • HTTPS(SSL)ページをインデックスさせない方法

    住所や生年月日、クレジットカードなどの個人情報をインターネット経由で伝えることが当たり前のようになり、セキュアな通信はますます重要になってきています。 SSLというのは、”Secure Sockets Layer”の略でインターネット(TCP/IPネットワーク)でやりとりする情報を暗号化して送受信するプロトコル(通信規約)です。 ウェブサーバーとブラウザの通信をSSLの仕組みを使って暗号化するのが、HTTPSです。 SSLは、公開鍵やら秘密鍵やらデジタル証明書やらデジタル署名やらいろいろな技術を使い、理解するのに難易度が高い仕組みです。 といっても、今日の記事はSSLの解説ではありませんので、中身は知らなくてもぜんぜんOKです。w ブログ読者から質問をいただきました。 「HTTPSページをインデックスさせないようにするには、どうすればいいのか?」という質問です。 この方は、eコマースサイト

    HTTPS(SSL)ページをインデックスさせない方法
  • 角丸作り放題なApacheモジュール

    mod_rounded_cornersという角丸を生成するための Apacheモジュール(Apache2系用)を作りました。 というか会社のなんかのミーティングで誰かが 言ってたので勉強がてら作ってみた。 http://github.com/yoshiki/mod_rounded_corners/tree/master インストールは下記のようにすればOK。 % autoconf % ./configure % make # make install 設定はhttpd.confに <VirtualHost *:80> ServerName rounded-corners.example.com <Loction /> SetHandler rounded-corners </Location> </VirtualHost> て感じで書けばOK。 今のところはLocationが「/」以外だと