Konfigurasikan apache untuk mendengarkan pada port selain 80

102

Saya menggunakan server centOS. Saya ingin mengkonfigurasi apache untuk mendengarkan pada port 8079. Saya menambahkan direktif LISTEN 8079 di httpd.conf.
Saya membuka port 8079 di iptables dan memulai ulang iptables. Saya bahkan menghentikan layanan iptables.

"netstat -nal | grep 8079" shows "tcp  0 0 :::8079 :::* LISTEN"

Jika saya mencoba mengakses http://localhost:8079atau http://myserver.com:8079dari mesin itu, saya dapat mengakses halaman itu. TAPI dari komputer lain, saya tidak dapat mengakses situs di port mana pun selain 80. Pada port 80, ini berfungsi. Pada port 8079 tidak.

Apa lagi yang perlu saya konfigurasikan?

vivek.m
sumber

Jawaban:

138

Di /etc/apache2/ports.conf, ubah port sebagai

Listen 8079

Lalu pergi ke /etc/apache2/sites-enabled/000-default.conf

Dan ubah baris pertama sebagai

<VirtualHost *: 8079>

Sekarang restart

sudo service apache2 restart

Apache sekarang akan mendengarkan pada port 8079 dan dialihkan ke / var / www / html

Shankar ARUL - jupyterdata.com
sumber
1
Tidak, hanya pesan yang mengganggu "Halaman web ini tidak tersedia". Hanya untuk memperjelas, port 80 bekerja dengan sempurna. Mengubah VirtualHost dan Listen tidak menyelesaikannya untuk saya. (AWS ubuntu). BTW alasan saya membutuhkannya untuk mendengarkan port yang berbeda adalah karena saya juga telah mengonfigurasi nginx untuk mendengarkan 80.
Tomer
1
pertanyaan singkat: apakah Anda membuka port masuk di grup keamanan seperti yang Anda katakan Anda berada di AWS ubuntu?
Shankar ARUL - jupyterdata.com
1
jika ada garis di NameVirtualHost *:80atas, Listen 80ubah itu juga ......
Haider Ali
75

Buka file httpd.conf di editor teks Anda. Temukan baris ini:

Listen 80

dan mengubahnya

Listen 8079

Setelah diubah, simpan dan mulai ulang apache.

ismailperim
sumber
3
ya, tapi saya sebutkan di baris pertama bahwa saya sudah mencoba ini "Saya menambahkan direktif LISTEN 8079 di httpd.conf": ((
vivek.m
Oh sory. Saya tidak melihatnya. Bisakah Anda memposting file httpd.conf di mana saja? Dan apakah Anda menggunakan perangkat lunak pihak ketiga Wamp, Xampp, Appserv?
ismailperim
Anda bisa mendapatkan httpd.conf di sini fileuploading.net/860467 tidak seperti WAMP, Xampp, Appserv. Yang telah saya lakukan adalah menyusun konektor apache, tomcat dan jk dari sumber dan mencoba yang terbaik untuk membuatnya bekerja sama.
vivek.m
saya tidak menemukan masalah :( semuanya tampak normal. saya mencoba menambahkan baris Listen 8076 di server lokal saya tetapi berfungsi normal. Dapatkah Anda mencoba mengatur ulang apache jika memungkinkan?
ismailperim
2
Satu hal yang tampaknya dilupakan semua orang saat menjawab pertanyaan semacam ini adalah menyebutkan lokasi file. File ini terletak di /etc/apache2/ports.conf
Mateus Viccari
23

Itu adalah masalah firewall. Ada firewall perangkat keras yang memblokir akses ke hampir semua port. (Mematikan firewall perangkat lunak / SELinux bla bla tidak berpengaruh)

Kemudian saya memindai porta yang terbuka dan menggunakan port yang terbuka.

Jika Anda menghadapi masalah yang sama, Jalankan perintah berikut

sudo nmap -T Aggressive -A -v 127.0.0.1 -p 1-65000

Ini akan memindai semua port terbuka di sistem Anda. Semua port yang terbuka bisa diakses dari luar.

Referensi : http://www.go2linux.org/which_service_or_program_is_listening_on_port

vivek.m
sumber
netstat -anp | grep apache2 (Anda dapat melihat port pendengar dan PID dari ini jika berjalan.
Ubuntu
Penyedia layanan cloud saya memiliki firewall di bagian atas yang memblokir porta. Periksa firewall yang ditempatkan selain di server target.
Yamada
16

Jika Anda membutuhkan port Listen apache selain 80, Anda harus menambahkan file berikutnya di bawah ubuntu

"/etc/apache2/ports.conf"

daftar port Listen

Listen 80
Listen 81
Listen 82

Setelah Anda harus pergi ke file conf host Virtual Anda dan menentukan berikutnya

<VirtualHost *:80>
  #...v host 1
</VirtualHost>


<VirtualHost *:81>
  #...host 2
</VirtualHost>


<VirtualHost *:82>
  #...host 3
</VirtualHost>
dmitri
sumber
7

Ini berfungsi untuk saya di Centos

Pertama: di file /etc/httpd/conf/httpd.conf

Menambahkan

Listen 8079 

setelah

Listen 80

Ini sampai server Anda mendengarkan port 8079

Kedua: pergi ke host virtual Anda untuk mantan. /etc/httpd/conf.d/vhost.conf

dan tambahkan kode ini di bawah

<VirtualHost *:8079>
   DocumentRoot /var/www/html/api_folder
   ServerName example.com
   ServerAlias www.example.com
   ServerAdmin [email protected]
   ErrorLog logs/www.example.com-error_log
   CustomLog logs/www.example.com-access_log common
</VirtualHost>

Ini berarti saat Anda membuka www.example.com:8079pengalihan ke

/ var / www / html / api_folder

Tetapi Anda harus memulai ulang layanan terlebih dahulu

sudo service httpd restart

Ahmed Al Bermawy
sumber
2

Jika Anda menggunakan Apache di Windows :

  1. Periksa nama layanan Apache dengan Win+ R+ services.msc+Enter (jika bukan ApacheX.Y, harus ada nama perangkat lunak yang Anda gunakan dengan apache, misalnya: "wampapache64");
  2. Mulai prompt perintah sebagai Administrator (menggunakan Win+ R+ cmd+ Entertidak cukup);
  3. Ubah ke direktori Apache, misalnya cd c:\wamp\bin\apache\apache2.4.9\bin:;
  4. Periksa apakah file konfigurasi sudah OK dengan: httpd.exe -n "YourServiceName" -t(ganti nama layanan dengan yang Anda temukan di langkah 1);
  5. Pastikan layanan dihentikan: httpd.exe -k stop -n "YourServiceName"
  6. Mulailah dengan: httpd.exe -k start -n "YourServiceName"
  7. Jika dimulai dengan baik, masalahnya tidak ada lagi, tetapi jika Anda mendapatkan:

    AH00072: make_sock: tidak dapat mengikat ke alamat IP: PORT_NUMBER

    AH00451: tidak ada soket pendengar yang tersedia, mati

    Jika nomor port bukan yang ingin Anda gunakan, buka file konfigurasi Apache (misalnya C:\wamp\bin\apache\apache2.4.9\conf\httpd.confbuka dengan editor kode atau wordpad, tetapi bukan notepad - tidak membaca baris baru dengan benar) dan ganti nomor pada baris yang dimulai dengan Listennomor port yang Anda inginkan, simpan dan ulangi langkah 6. Jika yang ingin Anda gunakan, lanjutkan:

  8. Periksa PID dari proses yang menggunakan port itu dengan Win+ R+ resmon+ Enter, klik pada tab Jaringan dan kemudian pada sub-tab Ports ;
  9. Bunuh dengan: taskkill /pid NUMBER /f( /fmemaksa);
  10. Periksa kembali resmonuntuk mengonfirmasi bahwa port sekarang sudah kosong dan ulangi langkah 6.

Ini memastikan bahwa layanan Apache dimulai dengan benar, konfigurasi pada file konfigurasi host virtual seperti yang disebutkan sarul (misalnya :)C:\wamp\bin\apache\apache2.4.9\conf\extra\httpd-vhosts.conf diperlukan jika Anda menyetel jalur file Anda di sana dan mengubah porta juga. Jika Anda mengubahnya lagi, ingatlah untuk me-restart layanan: httpd.exe -k restart -n "YourServiceName".

Kaki tangan
sumber
1

Untuk server FC22

cd / etc / httpd / conf edit httpd.conf [masukkan]

Ubah: Dengarkan 80 ke: Dengarkan nomor telepon apa saja

Simpan file

systemctl restart httpd.service [masukkan] jika diperlukan, buka semua nomor di router / firewall Anda

Fedora
sumber