Apache'yi 80 dışındaki bağlantı noktasında dinlemek için yapılandırın


103

CentOS sunucusu kullanıyorum. Apache'yi 8079 numaralı bağlantı noktasını dinleyecek şekilde yapılandırmak istiyorum. 'A LISTEN 8079 yönergesini ekledim httpd.conf.
İptables'da 8079 numaralı bağlantı noktasını açtım ve iptables'ı yeniden başlattım. Iptables hizmetini bile durdurdum.

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

O makineden http://localhost:8079ya da erişmeye çalışırsam http://myserver.com:8079, o sayfaya erişebilirim. ANCAK başka herhangi bir makineden siteye 80 dışındaki herhangi bir bağlantı noktasından erişemiyorum. Bağlantı noktası 80'de çalışıyor. 8079 numaralı bağlantı noktasında yok.

Yapılandırmak için başka neye ihtiyacım var?

Yanıtlar:


138

İçinde /etc/apache2/ports.conf, bağlantı noktasını şu şekilde değiştirin:

Listen 8079

Ardından /etc/apache2/sites-enabled/000-default.conf adresine gidin.

Ve ilk satırı şu şekilde değiştirin:

<VirtualHost *: 8079>

Şimdi yeniden başlat

sudo service apache2 restart

Apache şimdi 8079 numaralı bağlantı noktasını dinleyecek ve / var / www / html adresine yönlendirecektir.


1
Hayır, sadece "Bu web sayfası mevcut değil" can sıkıcı mesaj. Sadece açıklığa kavuşturmak için bağlantı noktası 80 mükemmel çalışıyor. Hem VirtualHost'u hem de Listen'ı değiştirmek benim için sorunu çözmez. (AWS ubuntu). Ben de 80 dinlemek için nginx yapılandırılmış ettik çünkü BTW farklı bir bağlantı noktasına dinlemek gerekir nedeni budur
Tomer

1
hızlı soru: AWS ubuntu'da olduğunuzu söylerken güvenlik gruplarında gelen bağlantı noktasını açtınız mı?
Shankar ARUL - jupyterdata.com

1
NameVirtualHost *:80yukarıda çizgi varsa onu da Listen 80değiştirin ......
Haider Ali

75

Metin düzenleyicinizde httpd.conf dosyasını açın. Bu satırı bulun:

Listen 80

ve değiştir

Listen 8079

Değişiklikten sonra kaydedin ve apache'yi yeniden başlatın.


3
evet, ama ilk satırda zaten denediğimi söylemiştim "httpd.conf dosyasına LISTEN 8079 yönergesini ekledim": ((
vivek.m

Üzgünüm. Ben görmedim Httpd.conf dosyasını herhangi bir yere gönderebilir misiniz? Ve 3. taraf yazılım Wamp, Xampp, Appserv mi kullanıyorsunuz?
ismailperim

httpd.conf dosyasını buradan fileuploading.net/860467 edinebilirsiniz , WAMP, Xampp, Appserv gibi bir şey yoktur. Tek yaptığım apache, tomcat ve jk bağlayıcılarını kaynaktan derlemek ve birlikte çalışmalarını sağlamak için elimden gelenin en iyisini yapmak.
vivek.m

sorunu bulamadım :( her şey normal görünüyor. Yerel sunucuma Listen 8076 satırını eklemeyi denedim ama normal çalıştı. Mümkünse
apache'yi

2
Bu tür soruları yanıtlarken herkesin unuttuğu bir şey, dosyanın konumundan bahsetmektir. Dosya
/etc/apache2/ports.conf

23

Bu bir güvenlik duvarı sorunuydu. Hemen hemen tüm bağlantı noktalarına erişimi engelleyen bir donanım güvenlik duvarı vardı. (Yazılım güvenlik duvarının kapatılması / SELinux bla bla'nın etkisi olmadı)

Sonra açık portları taradım ve açık olan portu kullandım.

Aynı sorunla karşı karşıyaysanız, aşağıdaki komutu çalıştırın.

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

Sisteminizdeki tüm açık portları tarayacaktır. Açık olan herhangi bir bağlantı noktasına dışarıdan erişilebilir.

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


netstat -anp | grep apache2 (
Çalışıyorsa

Bulut servis sağlayıcımın üst kısmında bağlantı noktasını engelleyen bir güvenlik duvarı vardı. Hedef sunucu dışında yerleştirilmiş güvenlik duvarlarını kontrol edin.
Yamada

16

80 dışında bir apache Listen bağlantı noktasına ihtiyacınız varsa, sonraki dosyayı ubuntu altına eklemelisiniz.

"/etc/apache2/ports.conf"

Dinleme bağlantı noktalarının listesi

Listen 80
Listen 81
Listen 82

Virtual hosts conf dosyanıza gitmeniz ve bir sonrakini tanımlamanız gerektiğinde

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


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


<VirtualHost *:82>
  #...host 3
</VirtualHost>

7

Bu benim için Centos'ta çalışıyor

İlk: dosyada /etc/httpd/conf/httpd.conf

Ekle

Listen 8079 

sonra

Listen 80

Bu, sunucunuz 8079 numaralı bağlantı noktasını dinleyene kadar

İkincisi: ör. Sanal ana makinenize gidin./etc/httpd/conf.d/vhost.conf

ve bu kodu aşağıya ekleyin

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

Bu, ne zaman gittiğiniz anlamına gelir www.example.com:8079 yönlendirmenize

/ var / www / html / api_folder

Ancak önce hizmeti yeniden başlatmanız gerekir

sudo service httpd restart


2

Windows'ta Apache kullanıyorsanız :

  1. Win+ R+ services.msc+ İle Apache hizmetinin adını kontrol edinEnter İle (ApacheX.Y değilse, apache ile kullandığınız yazılımın adını taşımalıdır, örneğin: "wampapache64");
  2. Yönetici olarak bir komut istemi başlatın ( Win+ R+ cmd+ kullanmak Enteryeterli değildir);
  3. Apache'nin dizinine geçin, örneğin cd c:\wamp\bin\apache\apache2.4.9\bin:;
  4. Yapılandırma dosyasının uygun olup olmadığını kontrol edin: httpd.exe -n "YourServiceName" -t(hizmet adını 1. adımda bulduğunuz adla değiştirin);
  5. Hizmetin durdurulduğundan emin olun: httpd.exe -k stop -n "YourServiceName"
  6. Şununla başlayın: httpd.exe -k start -n "YourServiceName"
  7. Düzgün başlarsa, sorun artık orada değildir, ancak şunu alırsanız:

    AH00072: make_sock: IP adresine bağlanamadı: PORT_NUMBER

    AH00451: dinleme yuvası yok, kapatılıyor

    Bağlantı noktası numarası kullanmak istediğiniz numara değilse, Apache yapılandırma dosyasını C:\wamp\bin\apache\apache2.4.9\conf\httpd.confaçın (örn. Bir kod düzenleyici veya wordpad ile açın, ancak not defteri ile açın - yeni satırları düzgün okumaz) ve başlayan satırdaki numarayı değiştirin ileListen size kullanım istediği biriyse ona ve tekrar 6. adımdan tasarruf istediğiniz port sayısı ile, ardından devam:

  8. Win+ R+ resmon+ Enterİle o bağlantı noktasını kullanan işlemin PID'sini kontrol edin, sekmesine ve ardından Bağlantı Noktaları alt sekmesine tıklayın;
  9. Şununla öldürün: taskkill /pid NUMBER /f( /fzorlar);
  10. resmonBağlantı noktasının şimdi boş olduğunu onaylamak için tekrar kontrol edin ve 6. adımı tekrarlayın.

Bu, Apache'nin hizmetinin doğru bir şekilde başlatılmasını sağlar, sarul'un belirtildiği gibi sanal ana bilgisayar yapılandırma dosyasındaki yapılandırma (örn:C:\wamp\bin\apache\apache2.4.9\conf\extra\httpd-vhosts.conf ve bağlantı noktasını da değiştiriyorsanız gereklidir. Tekrar değiştirirseniz, hizmeti başlatmak için unutmayın: httpd.exe -k restart -n "YourServiceName".


1

FC22 sunucusu için

cd / etc / httpd / conf düzenle httpd.conf [enter]

Değiştir: 80 dinle: Hangi numarayı dinle

Dosya 'yı kaydet

systemctl httpd.service'i yeniden başlatın [enter], gerekirse yönlendiricinizde / güvenlik duvarınızda hangi numarayı açın


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.