2012-02-19 36 views
5

Tôi đang cố định cấu hình Lighttpd hoạt động như một proxy ngược. Tôi muốn có một số URL được ủy quyền cho các máy chủ khác nhau trên các cổng khác nhau, trên cùng một máy hoặc trong mạng cục bộ.Lighttpd Reverse Proxy Settings

Ví dụ:

/ /tĩnh /socket /ajax

Lighttpd sẽ ủy quyền tất cả các kết nối trừ để /static. Tôi muốn phân phối tất cả các yêu cầu tới /static trực tiếp từ phiên bản lighttpd này.

Đây là tập tin cấu hình cho 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 
      )) 
    ) 
} 

Tôi khá chắc chắn rằng biểu thức thông thường của tôi là sai. Tôi cũng nghĩ rằng chuỗi else là sai. Tôi chỉ không chắc chắn làm thế nào để làm điều đó. Tôi mới đến khu vực này, vì vậy tôi sẽ đánh giá cao một số nudges đi đúng hướng.

Xin cảm ơn,

Trả lời

2

Nói đúng, các khối khác không cần thiết.

Đối với vấn đề thực tế của bạn, bạn nêu rõ trong câu hỏi mình muốn khớp với /ajax, nhưng regex của bạn tìm kiếm /ajax/ (lưu ý dấu gạch chéo). URL bạn đang yêu cầu là gì?

+0

Điểm chính của việc sử dụng proxy ngược lại, ít nhất trong trường hợp của tôi, là phá vỡ chính sách gốc giống nhau. Do đó, trường hợp sử dụng của tôi sẽ đăng dữ liệu và không thực sự quan tâm đến bất kỳ điều gì trong quá khứ/ajax ban đầu. Ngoại lệ cho điều này là/static. Tôi cần phải bảo toàn toàn bộ yêu cầu để phân phát nội dung tĩnh chính xác. – Jonathan

+0

Bằng url, bạn có phải là miền không? Tôi chỉ muốn lighttpd khớp với dựa trên url, bất kể tên miền. Tôi có hiểu lầm không? – Jonathan

+0

Không, ý tôi là phần đường dẫn (sau tên miền). Tôi chỉ chỉ ra dấu gạch chéo sau trong câu trả lời này :) –

Các vấn đề liên quan