2016-02-26 16 views
8

Tôi đang xây dựng một thiết lập, trong đó máy chủ lưu trữ một loạt các vùng chứa Docker để thử nghiệm các nhánh mã khác nhau và tôi muốn truy cập máy chủ web đang chạy trong vùng chứa.Apache: proxy để unix socket được đặt tên trong URL

Tất cả các vùng chứa chạy trên host. Mỗi vùng chứa cung cấp ứng dụng web thông qua một ổ cắm unix trên máy chủ, ví dụ: /var/sockets/<socket_name>.

Những gì tôi muốn là cho apache trên host để proxy để các container dựa trên url, để khi tôi GET https://<host>.com/<socket_name>/my_url, proxy apache để <socket_name> yêu cầu: GET https://<host>.com/my_url. Nghĩa là, nó nhận ra tên ổ cắm trong url, ghi lại url và gửi nó đến ổ cắm đó.

Điều này có khả thi không? Tôi vẫn đọc qua tài liệu, nhưng dường như không tìm thấy bất kỳ gợi ý nào

+0

Apache hỗ trợ proxy để kết nối ổ cắm từ phiên bản 2.4.x. Làm thế nào chính xác, tốt ... Tôi tìm thấy câu hỏi của bạn đang tìm kiếm câu trả lời với google. :-) – peterh

Trả lời

3

Dựa trên các tài liệu khác nhau trên mạng, ý tưởng là bao gồm cả mod_proxymod_rewrite theo hai bước, URL sẽ được xử lý để trích xuất tên ổ cắm và được viết lại mà không có phần đó, và proxy phải được thực hiện dựa trên URL mới (rút ngắn) và tên ổ cắm.

Sau đây là cách nó thể trông giống như:

RewriteEngine On 
RewriteRule  /(.*)/(.*) http://%{HTTP_HOST}/$2 [P] 
ProxyPass  /   unix:/var/sockets/$1.sock|http://%{HTTP_HOST}/ 
ProxyPassReverse/   unix:/var/sockets/$1.sock|http://%{HTTP_HOST}/ 

tôi đất đề nghị của tôi trên (.*) biểu thức mà sẽ trích xuất hai tham số quan tâm. Sau đó, chúng tôi viết lại URL và, bằng cờ P, chúng tôi biểu thị rằng kết quả sẽ được chuyển đến proxy. Sau đó, chúng tôi chỉ định hai số ProxyPassProxyPassReverse và chỉ định đường dẫn socket Unix, đường phân cách | và địa chỉ cơ sở máy chủ.

Tôi hy vọng điều này có thể hoạt động hoặc ít nhất là cung cấp cho bạn một số phác thảo về những gì chúng ta sẽ tìm kiếm.

+0

Tôi sẽ xem liệu tôi có thể tìm thời gian để thử điều này không. Trong thời gian chờ đợi, tôi đã tạo một ứng dụng web python nhỏ chỉ đơn giản là chuyển hướng các url – Eldamir

+0

OK, ứng dụng web Python cũng có thể là một giải pháp phù hợp. –

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