Saya mendapatkan kesalahan ini setiap beberapa menit saat menggunakan mod_proxy sebagai proksi terbalik ke layanan web SOAP. Mungkin ada 3 atau 4 permintaan per detik, jadi kita berbicara sekitar 1 atau 2 dari setiap seribu yang memiliki kesalahan ini.
[Tue Nov 23 11:44:14 2010] [error] [client 172.16.1.31] (20014)Internal error: proxy: error reading status line from remote server soap1.server:8888
[Tue Nov 23 11:44:14 2010] [error] [client 172.16.1.31] proxy: Error reading from remote server returned by /someapp/path/to/web/service
Ini menyebabkan permintaan gagal. Jika saya memiliki klien terhubung langsung ke server sabun tanpa menggunakan proxy, sukses adalah 100% sehingga masalah tampaknya berada di proxy
Konfigurasi terlihat seperti ini. Tujuannya adalah untuk beralih ke server cadangan jika yang utama tidak tersedia:
<Proxy balancer://apicluster>
BalancerMember http://soap1.server:8888 lbset=0
BalancerMember http://soap2.server:8888 lbset=1
</Proxy>
ProxyPass /someapp balancer://apicluster/someapp
ProxyPassReverse / balancer://apicluster/someapp
Adakah yang mengalami ini dan menemukan perbaikan? Ada beberapa yang menyebutkan dalam laporan bug tetapi tidak ada solusi. Satu-satunya hal yang mungkin tidak biasa adalah permintaan klien bisa 100MB atau lebih besar, sehingga permintaan bisa memakan waktu sedikit lebih lama daripada yang Anda harapkan untuk panggilan SOAP.
sumber
Jawaban:
Dalam kasus orang lain mengalami hal ini. Ini adalah bug di mod_proxy yang bisa dihindari dengan meletakkan baris-baris ini di httpd.conf Anda:
https://issues.apache.org/bugzilla/show_bug.cgi?id=37770
Untuk info tentang variabel-variabel ini, lihat
mod_proxy
dokumentasi . Mereka memiliki bagian tertentu, Penyesuaian Protokol, yang membahas variabel-variabel ini.sumber
Perhatikan dokumentasi Apache di sini: http://httpd.apache.org/docs/2.2/mod/mod_proxy_http.html
Tampaknya ada kondisi balapan di mod_proxy_http, tetapi dapat dihindari dengan memasukkan:
Yang mencegah Apache menggunakan koneksi gabungan jika ini merupakan permintaan awal.
Dokumen tidak mencatat bahwa pengaturan ini akan menurunkan kinerja.
sumber
proxy-initial-not-pooled
hanya efektif jika Anda memiliki tambalan tertentu, yang saya yakin bukan bagian dari httpd 2.2. Saya tidak tahu tentang httpd 2.4. Lihat bz.apache.org/bugzilla/show_bug.cgi?id=37770#c88Anda juga dapat menekan pesan kesalahan terkait ini (
AH01102: error reading status line from remote server
) dengan menggunakan modul apache mod_reqtimeout dan direktif conf ini:Anda mungkin harus mengaktifkan modul reqtimeout, sebagai berikut:
sumber