「Apache」カテゴリーアーカイブ

mod_proxyでバックエンドのサーバがダウンすると復旧しても 503 Service Temporarily Unavailable

mod_proxyでバックエンドのサーバがいったんダウンすると、復旧しても一定時間(デフォルトでは60秒)は 503 Service Temporarily Unavailable になってしまう。
リトライするまでの時間は、ProxyPassディレクティブ の retry パラメータで指定することができる。
(ProxyPass ディレクティブのスキームが balancer:// で始まる場合は、対応する <Proxy> セクション中の BalancerMember ディレクティブに retry パラメータを指定できる。)

ProxyPass / http://localhost:3000/ retry=5
ProxyPassReverse / http://localhost:3000/
ProxyPass / balancer://mycluster/
ProxyPassReverse / balancer://mycluster/
<Proxy balancer://mycluster/>
  BalancerMember http://localhost:9001 loadfactor=10 retry=5
  BalancerMember http://localhost:9002 loadfactor=10 retry=5
  BalancerMember http://localhost:9003 loadfactor=10 retry=5
</Proxy>

mod_proxy - Apache HTTP サーバ
ProxyPass には retry=?? を指定しておく - daily dayflower
BalancerMemberにはretry=??を指定しておく - cys b

WindowsのApacheでSSLを設定

テスト用の自己署名証明書を作成。

C:\Program Files (x86)\Apache Software Foundation\Apache2.2\bin>openssl genrsa 1024 > ..\conf\server.key
Loading 'screen' into random state - done
Generating RSA private key, 1024 bit long modulus
.++++++
................++++++
e is 65537 (0x10001)
C:\Program Files (x86)\Apache Software Foundation\Apache2.2\bin>openssl req -new
 -x509 -days 3650 -key ..\conf\server.key -out ..\conf\server.crt
Unable to load config info from /usr/local/ssl/openssl.cnf
C:\Program Files (x86)\Apache Software Foundation\Apache2.2\bin>openssl req -new -x509 -days 3650 -key ..\conf\server.key -out ..\conf\server.crt -config ..\conf\openssl.cnf
Loading 'screen' into random state - done
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.

mod_rewriteでフォワードされたリクエストにリクエストヘッダーを追加する

RewriteRuleのenvフラグで環境変数をセットしておき、RequestHeader append で使う。

  RewriteEngine on
  RewriteRule ^/(.*)$ http://appserver/$1 [P,L,QSA,env=ORG_REMOTE_ADDR:%{REMOTE_ADDR}]
  ProxyPassReverse / http://appserver/
  RequestHeader append X_ORG_REMOTE_ADDR %{ORG_REMOTE_ADDR}e env=ORG_REMOTE_ADDR
  RequestHeader append X-Forwarded-Proto https

mod_rewrite - Apache HTTP Server
たまねぎプログラマハマリ日記:Apache内のCGI環境変数をTomcatに渡す。 - livedoor Blog(ブログ)

名前ベースのVirtualHostでは、複数のサーバ証明書を使えない

現在は、ほとんどすべてのブラウザで SNI(Server Name Indication) がサポートされているため、名前ベースのVirutualHostで、それぞれ別のサーバー証明書を使用できる。

Apache NAMEベースのバーチャルホストにそれぞれSSLを設定することは出来ない | JUGEMの自作テンプレートを配布 Show-U
floatingdays: 名前ベースのVirtualHostでは、複数のサーバ証明書を使えない
[Apache-Users 2708] Re: SSLでバーチャルホスト
mod_ssl: F.A.Q.
なぜネームベースのVirtualHostでは複数の証明書を使用できないのか?の分かりやすい説明。
Takayuki Nakamura's blog: 名前ベースのVirtualHostでそれぞれのSSLサーバ証明書を使う
回避方法の説明。