Làm cách nào để loại trừ một URL cho Apache Mod_proxy?


23

Chúng tôi có hai máy chủ Apache là front-end và 4 tomcat server là back-end được cấu hình bằng mô-đun mod_proxy làm bộ cân bằng tải. Bây giờ, chúng tôi muốn loại trừ một url tomcat duy nhất khỏi bộ cân bằng tải mod_proxy. Có cách nào hoặc quy tắc để loại trừ?

Cài đặt bộ cân bằng proxy:

<Proxy balancer://backend-cluster1>
   BalancerMember http://10.0.0.1:8080 loadfactor=1 route=test1 retry=10
   BalancerMember http://10.0.0.2:8080 loadfactor=1 route=test2 retry=10
</Proxy>

Câu trả lời:


38

Bạn loại trừ các đường dẫn khỏi mod_proxy bằng dấu chấm than (!) Trước câu lệnh ProxyPass đầy đủ mà mẫu của bạn bị thiếu - Nó sẽ trông giống như vậy ProxyPass /path balancer://backend-cluster1. Do đó, để loại trừ một đường dẫn, hãy thêm:

ProxyPass /my/excluded/path !

trước

ProxyPass /my balancer://backend-cluster1

Nhưng url để có quyền truy cập đằng sau proxyBalancer
Mughil

Cảm ơn fuzzyfelt, tôi hỏi cách loại trừ url nếu chúng tôi định cấu hình bộ cân bằng proxy. Tôi đã bao gồm cấu hình proxy trong câu hỏi
Mughil

1
Xem câu trả lời cập nhật. Thêm một loại trừ trước khi bạn xác định đường dẫn đến proxypass.
Alastair McCormack

2
Sử dụng câu trả lời này rất hữu ích khi cho phép LetsEncrypt vào vị trí thư mục .well được biết đến mặc định cho một máy chủ ảo, khi sử dụng ProxyPass để hiển thị một máy chủ trò chuyện ở đó. Thêm trước các chỉ thị khác: ProxyPass /.well- Unknown!
Giáo sư Falken

2

Ngoài câu trả lời của Alastair McCormack: Nếu bạn sử dụng <Location>, bạn cần đặt ngoại lệ bên dưới thay vì trước đó:

<Location /my/>
    ProxyPass balancer://backend-cluster1
</Location>

<Location /my/excluded/path/>
    ProxyPass !
</Location>

-2

Bạn có thể đặt viết lại phía trên các chỉ thị proxy sẽ cung cấp cho người dùng lỗi 404 khi họ cố gắng truy cập url bạn muốn loại trừ. Bạn sẽ cần phải bật Rewrite_module.

<Location ~ ^/urltoblock($|/)>
   RewriteEngine On 
   RewriteRule .* - [L,R=404]
</Location>

Anh ta không nói gì về việc muốn có lỗi 404.
dùng207421
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.