Bagaimana cara Mengecualikan URL untuk Apache Mod_proxy?


23

Kami memiliki dua server Apache sebagai front-end dan 4 tomcat server sebagai back-end yang dikonfigurasi menggunakan modul mod_proxy sebagai penyeimbang beban. Sekarang, kami ingin mengecualikan url kucing jantan tunggal dari penyeimbang beban mod_proxy. Apakah ada cara atau aturan untuk dikecualikan?

Pengaturan Proxy Balancer:

<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>

Jawaban:


39

Anda mengecualikan jalur dari mod_proxy dengan tanda seru (!) Sebelum pernyataan ProxyPass lengkap Anda, yang sampel Anda tidak ada - Ini akan terlihat seperti ProxyPass /path balancer://backend-cluster1. Karena itu, untuk mengecualikan jalur, tambahkan:

ProxyPass /my/excluded/path !

sebelum

ProxyPass /my balancer://backend-cluster1

Tetapi url untuk memiliki akses di belakang proxyBalancer
— Mughil

Terima kasih fuzzyfelt, saya bertanya bagaimana mengecualikan url jika kami mengkonfigurasi penyeimbang proxy. Saya telah memasukkan konfigurasi proksi dalam pertanyaan
— Mughil

1
Lihat jawaban yang diperbarui. Tambahkan pengecualian sebelum Anda menentukan jalur mana ke proxypass.
— Alastair McCormack

2
Menggunakan jawaban ini bekerja sangat baik untuk memungkinkan LetsEncrypt ke lokasi folder default terkenal untuk virtualhost, ketika menggunakan ProxyPass untuk menunjukkan server obrolan di sana. Tambahkan sebelum arahan lain: ProxyPass /.well-known!
— Profesor Falken

2

Selain jawaban Alastair McCormack: Jika Anda menggunakan <Location>, Anda harus meletakkan pengecualian di bawah ini daripada sebelumnya:

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

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

-2

Anda bisa meletakkan penulisan ulang di atas arahan proxy yang akan memberi pengguna kesalahan 404 ketika mereka mencoba mengakses url yang ingin Anda kecualikan. Anda harus mengaktifkan rewrite_module.

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

Dia tidak mengatakan apa-apa tentang menginginkan kesalahan 404.
— user207421
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.