it-swarm.asia

Apache Web Sunucusunun iki farklı bağlantı noktasını dinlemesini nasıl sağlarım?

Bağlantı noktası 80 ve bağlantı noktası 8080'i dinlemek için evde kurduğum bir Apache Web Sunucusu istiyorum.

Ekledim Listen 8080 - httpd.conf adresine giderek Apache hizmetlerini yeniden başlattı ancak sunucu 8080'de dinlemiyor gibi görünüyor. http: // localhost: 808 zaman aşımına uğradı ve dizinimi göstermiyor. html ancak http: // localhost dizinimi.html görüntüler.

80 ve 8080 dinlemesini nasıl sağlarım?

45
Owen

Standart bir Debian Apache kurulumu aşağıdaki yapılandırma parçasına sahip olacaktır:

 Dinleyin 80 
 
 <IfModule mod_ssl.c> 
 # SSL adı tabanlı sanal ana bilgisayarlar henüz desteklenmiyor, bu nedenle burada hiçbir 
 # NameVirtualHost ifadesi yok 
 Dinle 443 
 </IfModule> 

Bu, Apache'ye mod_ssl yapılandırılmışsa 80 numaralı bağlantı noktasını dinlemesini ve 443 numaralı bağlantı noktasını dinlemesini söyler. Sizin durumunuzda:

Listen 80
Listen 8080

Yeni Dinleme yönergelerine dikkat etmesi için Apache'de yeniden yükleme işlemi değil yeniden başlatma çalıştırdığınızdan emin olmanız gerekir. Yapılacak en güvenli şey Apache'yi durdurmak, öldüğünden emin olmak ve tekrar başlatmaktır.

Bu yapılandırma çalışmazsa, günlük dosyalarında hata iletisi olup olmadığını kontrol edin. 8080 numaralı bağlantı noktasında dinleyen bir şey olup olmadığını görmek için "netstat -lep --tcp" kullanabilirsiniz. Son olarak, her şey çalışmazsa, bu bağlantı noktasına bağlanmaya çalışıp çalışmadığını görmek için Apache'yi şerit altında çalıştırmayı deneyin, ancak sorunu günlüğe kaydetmez.

64
David Pashley

Bu cevaplar harika, ama Owen has bunu zaten yapmış olma olasılığını bırakıyorlar ("Listen 8080" Ekledim) tam olarak nasıl göründüğü anlamına gelebilir (yani, David önerdi).

Bunu daha önce yaptıysanız ve hala çalışmıyorsa, varsayılanı da dahil olmak üzere, her alt alan adı için yönergelerinizi doğru bir şekilde yapılandırdığınızdan emin olun (ismin hemen ardından dinlemek için yapılandırılmışsa: 80 adından hemen sonra).

Muhtemelen böyle bir direktifiniz var:

<VirtualHost *:80>
 ServerName michaelsanford.com
 etc…
</VirtualHost>

Bunu <VirtualHost *:8080> Veya <VirtualHost *:*> Olarak değiştirmeniz gerekir.

7
msanford

Aşama 1

#vi httpd.conf
Listen 80

<IfModule mod_ssl.c>
    # SSL name based virtual hosts are not yet supported, therefore no
    # NameVirtualHost statement here
    Listen 443
</IfModule>

httpd (Apache), 80 numaralı bağlantı noktasını dinlemek ve mod_ssl yapılandırılmışsa 443 numaralı bağlantı noktasını dinlemek için kullanılır.

Listen 80
Listen 8080

Adım 2

#su - service httpd restart

Aşama 3

$ netstat -lntp

(Tüm süreçler tanımlanamaz, sahip olunmayan süreç bilgileri gösterilmez, hepsini görmek için kök olmanız gerekir.)

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      -                   
tcp        0      0 0.0.0.0:47027               0.0.0.0:*                   LISTEN      -                   
tcp        0      0 192.168.1.1:80              0.0.0.0:*                   LISTEN      -                   
tcp        0      0 192.168.1.1:8080            0.0.0.0:*                   LISTEN      -                   
tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN      -                   
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      -                   
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      -                   
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      -                   
tcp        0      0 ::ffff:127.0.0.1:45100      :::*                        LISTEN      3149/Java           
tcp        0      0 :::111                      :::*                        LISTEN      -                   
tcp        0      0 :::80                       :::*                        LISTEN      -                   
tcp        0      0 :::57173                    :::*                        LISTEN      3149/Java           
tcp        0      0 :::18197                    :::*                        LISTEN      3149/Java           
tcp        0      0 :::22                       :::*                        LISTEN      -                   
tcp        0      0 ::1:631                     :::*                        LISTEN      -                   
tcp        0      0 :::40832                    :::*                        LISTEN      3149/Java           
tcp        0      0 ::ffff:127.0.0.1:6880       :::*                        LISTEN      3149/Java       
5
Rajat

Bunun çalışması için bir siteyi 8080 bağlantı noktası yapılandırmanız gerekebilir. Apache Sanal Ana Bilgisayarları belgelerini okuyun. Her bir 'site' belirli bağlantı noktalarındaki (ve ip, vb.) Bağlantıları kabul edecek şekilde ayarlanabilir. Http.conf dosyasında yalnızca 80 numaralı bağlantı noktası için yapılandırılmış bir sanal Ana Bilgisayarınız var mı?

Ayrıca, sunucunun netstat -nlp ve o bağlantı noktasında bir giriş arıyor.

0
Dana the Sane

SELinux'un etkin olup olmadığını kontrol etmek de isteyebilirsiniz. Varsayılan SELinux yapılandırması, Apache'yi standart olmayan bağlantı noktalarında çalıştırmanıza izin vermeyebilir. SELinux'u çalıştırıp çalıştırmadığınızı ve nasıl devre dışı bırakılacağını, istemiyorsanız veya özelliklerini kullanmamanızı gösteren bir site. http://www.crypt.gen.nz/selinux/disable_selinux.html

0
Reamer77

Linux çalıştırması varsayılarak netstat -lntp Apache'nin 8080'de dinleyip dinlemediğini görebileceğiniz kadar kök. Bu, sorunun Apache'nin dinlemediğini veya Apache için bağlantı zaman aşımına uğrayan dış etkenler (ör. Güvenlik duvarı, selinux vb.) Olup olmadığını belirlemenize yardımcı olacaktır.

0
Jason Tan