Proxy Apache tidak berfungsi untuk port host lokal

16

Saya memiliki Apache 2.2.15 yang berjalan pada port 80 dan ingin membuat proksi mesin servlet pada port localhost 8983. Saya memiliki pengaturan yang berjalan di server lain, tetapi telah pindah ke mesin CentOS 6. Itu tidak bekerja pada mesin baru. Konfigurasi host virtual saya:

Permintaan Proxy Tidak Aktif

<Proxy *>
   Order deny, allow
   Bolehkan dari semua
</Proxy>

ProxyPass / http: // localhost: 8983 /
ProxyPassReverse / http: // localhost: 8983 /

Saya dapat mengakses port 8983 jika saya menggunakan browser dan langsung menuju ke sana (dan tidak melalui proxy Apache), tetapi tidak dapat terhubung ke sana jika saya pergi ke / melalui server Apache.

Saya dapat mengubah apa yang sedang diproksi menjadi sesuatu seperti http://slashdot.org dan Slashdot berhasil diproksi (jadi saya tahu ini bisa proxy secara umum).

Saya mengaktifkan debug logging di Apache dan ini transaksi:

[Sun Apr 22 16:47:04 2012] [debug] mod_proxy_http.c (56): proxy: HTTP: canonicalising URL // localhost: 8983 /
[Sun Apr 22 16:47:04 2012] [debug] proxy_util.c (1506): [klien 184.39.79.7] proxy: http: pekerja yang ditemukan http: // localhost: 8983 / untuk http: // localhost: 8983 /
[Sun Apr 22 16:47:04 2012] [debug] mod_proxy.c (998): Menjalankan skema http handler (upaya 0)
[Sun Apr 22 16:47:04 2012] [debug] mod_proxy_http.c (1962): proxy: HTTP: melayani URL http: // localhost: 8983 /
[Sun Apr 22 16:47:04 2012] [debug] proxy_util.c (2011): proxy: HTTP: telah memperoleh koneksi untuk (localhost)
[Sun Apr 22 16:47:04 2012] [debug] proxy_util.c (2067): proxy: menghubungkan http: // localhost: 8983 / ke localhost: 8983
[Sun Apr 22 16:47:04 2012] [debug] proxy_util.c (2193): proxy: terhubung / ke localhost: 8983
[Sun Apr 22 16:47:04 2012] [debug] proxy_util.c (2444): proxy: HTTP: fam 10 socket dibuat untuk terhubung ke localhost
[Sun Apr 22 16:47:04 2012] [debug] proxy_util.c (2455): (13) Izin ditolak: proxy: HTTP: upaya menyambung ke [:: 1]: 8983 (localhost) gagal
[Sun Apr 22 16:47:04 2012] [debug] proxy_util.c (2444): proxy: HTTP: fam 2 socket dibuat untuk terhubung ke localhost
[Sun Apr 22 16:47:04 2012] [error] (13) Izin ditolak: proxy: HTTP: upaya untuk menyambung ke 127.0.0.1:8983 (localhost) gagal
[Sun Apr 22 16:47:04 2012] [error] ap_proxy_connect_backend menonaktifkan pekerja untuk (localhost)
[Sun Apr 22 16:47:04 2012] [debug] proxy_util.c (2029): proxy: HTTP: telah merilis koneksi untuk (localhost)
[Sun Apr 22 16:47:04 2012] [debug] mod_proxy_http.c (56): proxy: HTTP: canonicalising URL //localhost:8983/favicon.ico
[Sun Apr 22 16:47:04 2012] [debug] proxy_util.c (1506): [klien 184.39.79.7] proxy: http: pekerja yang ditemukan http: // localhost: 8983 / untuk http: // localhost: 8983 / favicon.ico
[Sun Apr 22 16:47:04 2012] [debug] mod_proxy.c (998): Menjalankan skema http handler (upaya 0)
[Sun Apr 22 16:47:04 2012] [debug] mod_proxy_http.c (1962): proxy: HTTP: serving URL http: // localhost: 8983 / favicon.ico
[Sun Apr 22 16:47:04 2012] [debug] proxy_util.c (1949): proxy: HTTP: mencoba ulang pekerja untuk (localhost)
[Sun Apr 22 16:47:04 2012] proxy [kesalahan]: HTTP: koneksi dinonaktifkan untuk (localhost)

Saya tidak tahu apa soket fam 10 atau fam 2. Adakah yang punya ide tentang mengapa ini tidak mem-proxy ke port alternatif saya?

Terima kasih!

ksclarke
sumber
Proxy Apache hanya akan mengizinkan lalu lintas HTTP atau HTTPS melewatinya.
ionFish

Jawaban:

7

Inilah solusi untuk masalah Anda:

Untuk mengaktifkan boolean ini, Anda harus menggunakan baris ini (izin root)

setsebool -P httpd_can_network_connect on

atau

sudo setsebool -P httpd_can_network_connect on

Semoga itu bisa membantu. Referensi lihat di sini: https://wiki.centos.org/TipsAndTricks/SelinuxBooleans

Mchoeti
sumber
11

Saya memecahkan masalah saya:

Jika aku melakukan: sestatus -b | grep httpd

Yang bisa saya lihat httpd_can_network_connectadalahoff

Solusinya adalah dengan mengetik: togglesebool httpd_can_network_connect

ksclarke
sumber
4
Tidak yakin dari mana togglesebooldatangnya (bukan pada CentOS7-minimal saya) dan web menunjukkan bahwa bahkan jika Anda memiliki togglesebool Hanya "dalam memori" nilai-nilai diubah " . Tetapi setsebool -P httpd_can_network_connect=1bekerja untuk saya; -P untuk membuatnya selamat dari reboot. Terima kasih untuk petunjuknya
jwd630
1

Pastikan port 8080 mendengarkan dengan menjalankan perintah berikut

netstat -tlpn

Jika tidak, daripada restart server jenkins

sudo /etc/init.d/jenkins start

Itu seharusnya bekerja sekarang. Semoga ini bisa membantu

Ajeet Khan
sumber