2012-02-19 12 views
5

Próbuję skonfigurować Lighttpd do działania jako odwrotnego proxy. Chcę mieć kilka adresów URL, które są kierowane do różnych serwerów na różnych portach, na tym samym komputerze lub w sieci lokalnej.Ustawienia proxy odwrotnego Lighttpd

Na przykład:

/ /static /gniazdo /ajax

Lighttpd by proxy wszystkie połączenia z wyjątkiem tych, do /static. Chcę służyć wszystkim żądaniom do /static bezpośrednio z tego wystąpienia lighttpd.

Oto plik konfiguracyjny dla 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 
      )) 
    ) 
} 

Jestem pewien, że moi wyrażenia regularne są błędne. Uważam też, że ciąg znaków else jest nieprawidłowy. Po prostu nie wiem, jak to zrobić. Jestem nowy w tym obszarze, więc byłbym wdzięczny za pewne trąby w dobrym kierunku.

Dzięki,

Odpowiedz

2

Ściśle mówiąc, bloki inny powinien być niepotrzebne.

Jeśli chodzi o aktualny problem, podajesz w pytaniu, że chcesz dopasować /ajax, ale Twój wyrażeń regularnych szuka /ajax/ (uwaga na końcowy ukośnik). Jakiego adresu URL żądasz?

+0

Głównym celem używania odwrotnego proxy, przynajmniej w moim przypadku, jest obejście tej samej zasady pochodzenia. Dlatego moim przypadkiem użycia byłoby publikowanie danych i nie naprawianie troski o cokolwiek poza początkiem/ajaxem. Wyjątkiem jest/static. Muszę zachować żądanie w całości, aby wyświetlać prawidłowe treści statyczne. – Jonathan

+0

Według adresu URL, masz na myśli domenę? Chcę tylko dopasować lighttpd na podstawie adresu URL, niezależnie od domeny. Czy źle zrozumiałem? – Jonathan

+0

Nie, mam na myśli tylko część ścieżki (po domenie). Wskażę tylko końcowe ukośne odbicie w tej odpowiedzi :) –

Powiązane problemy