2012-02-19 20 views
5

Lighttpdをリバースプロキシとして機能させるように設定しようとしています。私は、同じマシン上またはローカルネットワーク内の異なるポート上の異なるサーバーにプロキシされるいくつかのURLを持っていたいと思います。例えばLighttpdリバースプロキシ設定

/ /静的 /ソケット /AJAX

Lighttpdのプロキシ/staticのものを除くすべての接続をあろう。私は/staticへのすべての要求をlighttpdのこのインスタンスから直接提供したいと思います。ここで

はmod_proxyのための設定ファイルです:

## 
# Serve Static Content via Lighttpd. 
# 
$HTTP["url"] =~ "^/static/" { 
    server.document-root = "/path/to/my/static/files" 
    accesslog.filename = rootdir + "/var/log/static.log" 
    server.errorlog = rootdir + "/var/log/static.error.log" 
} 
## 
# Proxy to instance of Socket.io. 
# 
else $HTTP["url"] =~ "^/socket/" { 
    accesslog.filename = rootdir + "/var/log/socket.log" 
    server.errorlog = rootdir + "/var/log/socket.error.log" 
    proxy.server = (
     "" => ((
      "host" => "127.0.0.1", 
      "port" => 3000 
     )) 
    ) 
} 
## 
# Proxy to AJAX backend. 
# 
else $HTTP["url"] =~ "^/ajax/" { 
    accesslog.filename = rootdir + "/var/log/ajax.log" 
    server.errorlog = rootdir + "/var/log/ajax.error.log" 
    proxy.server = (
     "" => ((
      "host" => "127.0.0.1", 
      "port" => 4000 
     )) 
    ) 
} 
## 
# Proxy to something that returns my layout. 
# 
else $HTTP["url"] =~ "^/" { 
    accesslog.filename = rootdir + "/var/log/root.log" 
    server.errorlog = rootdir + "/var/log/root.error.log" 
    proxy.server = (
     "" => ((
      "host" => "127.0.0.1", 
      "port" => 5000 
      )) 
    ) 
} 

私は私の正規表現が間違っていることをかなり確信しています。私はまた、elseの文字列が間違っていると思います。私はそれをどうやって行うのか分かりません。私はこの分野に慣れていないので、適切な方向にいくつかのナッジを感謝します。

ありがとう、

答えて

2

厳密に言えば、elseブロックは不要です。

実際の問題については、/ajaxと一致するように質問しますが、正規表現は/ajax/(末尾のスラッシュに注意してください)を探します。リクエストしているURLは何ですか?

+0

少なくとも私の場合、リバースプロキシを使用する主なポイントは、同じ発信元ポリシーを回避することです。したがって、私のユースケースは、データを投稿することであり、最初の/ ajaxを過ぎて何かを気にすることではありません。例外は/ staticです。正しい静的コンテンツを提供するために、要求全体を完全に保存する必要があります。 – Jonathan

+0

URLで、あなたはドメインを意味しますか?私は、ドメインにかかわらず、URLに基​​づいてlighttpdを一致させるだけです。私は誤解しましたか? – Jonathan

+0

いいえ、私はちょうどパスの部分(ドメインの後)を意味します。私はこの答えの末尾にスラッシュを指摘しています:) –

関連する問題