Soru VirtualHost'ımın nesi var?


Aşağıdaki VirtualHost'um var

// filename: /etc/apache2/sites-available/ccbbbcc

<VirtualHost 1.1.1.1:80>
     ServerAdmin utopia@ccbbbcc.com
     ServerName ccbbbcc.com
     ServerAlias www.ccbbbcc.com
     DocumentRoot /srv/www/ccbbbcc/production/public_html/
     ErrorLog /srv/www/ccbbbcc/production/logs/error.log
     CustomLog /srv/www/ccbbbcc/production/logs/access.log combined
</VirtualHost>

Ve sonra bende var

//filename: /etc/apache2/sites-available/default

<VirtualHost 1.1.1.1:80>
ServerAdmin webmaster@localhost

        DocumentRoot /var/www/
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
blah blah blah

Tarayıcımı yazdığım zaman nasıl olur? http://1.1.1.1, beni alır http://ccbbbcc.com ? Yeni URL'leri IP 1.1.1.1'e yönlendirdiğimde bile, http://ccbbbcc.com. Neden / var / www dizinden sayfalar sunamıyorum?

Ek belirtiler - ccbbbcc vhost sadece diğer hayaletlerimin BAZINI geçersiz kılar. Hepsi değil.

ek Notlar

A2ensite kullandığınızdan ve apache'yi yeniden başlattığından emin oldum.

/Etc/apache2/ports.conf adresim şöyle görünüyor:

NameVirtualHost 1.1.1.1:80
Listen 80
Listen 443

"Merhaba Dünya" metniyle /srv/www/ccbbbcc/production/public_html/test.html adlı bir dosya oluşturdum. Yazdığımda http://ccbbbcc.com/test.html, sayfa iyi yükleniyor. Yazdığımda http://1.1.1.1/test.html404 Sayfa Bulunamadı. Yazdığımda http://1.1.1.1/, web tarayıcısı yenilenir ve daha sonra URL'yi görüntüler http://ccbbbcc.com. Ardından, URL'nin sonuna test.html eklerim ve Hello World tekrar görünür.

Yani bu bir yerde bir http yönlendirmesi mi demek oluyor? Eğer öyleyse, buna neyin sebep olduğunu belirleyemiyorum.

Ayrıca, ccbbbcc benim sanal sunuculardan BAZI KISITLAYACAĞINI fark ettim. Vhostun ayrımcılığa uğradığı / geçersiz kılındığı bir model yok gibi görünüyor.

Ayrıca şunları yaparsam fark ettim

1. a2dissite ccbbbcc
2. /etc/init.d/apache2 reload
3. a2ensite ccbbbcc
4. /etc/init.d/apache2 reload

Sonra aniden, http://ccbbbcc.com / var / www / sayfasından sayfalar ve http://1.1.1.1 ayrıca / var / www'den sayfalar sunar. A2ensite / a2dissite, sayfaların nereden yüklendiğini nasıl etkiler? Ccbbbcc 'i tekrar / srv / www / cbs / production sayfasından sunmanın tek yolu, tüm linux sunucumu yeniden başlatmaktır! Neler oluyor?


4
2018-04-15 16:14


Menşei




Cevaplar:


Okuyabildiğin gibi Sanal Host Eşleşmesinin Derinlemesine Tartışması:

Bu listedeki ilk vhost (   config dosyasındaki ilk vhost ile   belirtilen IP adresi)   en yüksek öncelikli ve herhangi birini yakalar   bilinmeyen bir sunucu adına veya   Host: header alanı olmadan istek.

Apache'niz dosyayı yükler ve değerlendirir /etc/apache2/sites-available/ccbbbcc önce /etc/apache2/sites-available/default.

Adını değiştirmek /etc/apache2/sites-available/default örneğin /etc/apache2/sites-available/00_default ve /etc/apache2/sites-available/ccbbbcc için /etc/apache2/sites-available/01_ccbbbccBöylece varsayılan dosya önce yüklenir.


8
2018-04-20 08:11



Apache'nin birkaç konfigürasyon dosyası vardır, bu bağlamda 'vhost list' için 'config dosyası' nedir? "/ Etc / apache2 / site-available" olduğunu mu sanıyorum? - Edwin Yip
Tamam, anladım, apache3.conf'umda bir satır var: Include /etc/apache2/sites-enabled/ve ben ne zaman ls İlk öğe ortaya çıktı bu dizin yumruk vhost.... - Edwin Yip


NameVirtualHost direktifiniz var mı?

Buraya bakın: http://httpd.apache.org/docs/2.0/mod/core.html#namevirtualhost

Temel olarak bir NameVirtualHost * veya belirli bir NameVirtualHost 1.1.1.1:80 yönergesi yoksa, sanal konak Ad-Tabanlı değil, adresi: port tabanlı.


1
2018-04-15 16:18



I have NameVirtualHost 1.1.1.1:80 Listen 80 Listen benim ports.conf içinde 443 Dinle - John
Sitelerde etkinleştirilen bağlantılar nasıl yapılandırılır? Alfabetik olarak kaynaklanmışlardır ve emin değilim, ancak Apache ana bilgisayar: port kombinasyonu için ilk VirtualHost yönergesine göre varsayılan olabilir. - Kyle Smith
Ben simdikileri anlamiyorum. Nasıl kontrol ederim? Ayrıca, hangi host: port kombinasyonunun seçildiğini etkileyen VirtualHost dosya adlarının alfabetik sıralamasını da gördüm. Ancak, ServerName özelliği seçimi daha spesifik / filtreli yapmamalı mı? - John


Sanal konaklarınızda bir ServerName / ServerAlias ​​bloğu bulunmayan apache, ilk önce yapılandırma sırasında başlatılan alana hizmet edecektir. Bu durumda, alfabetik olarak, ccbbbccc.com'un yapılandırma dosyası varsayılandan önce gelmelidir.

/ Etc / apache2 / sites etkin / varsayılan olarak ServerName ve / veya ServerAlias ​​yönergeleri ekleyin ve ayarlanmalıdır.


1
2018-04-15 17:31



Teşekkürler, bunu yaptım ama hala bir etkisi yok. Altında / etc / apache2 / sitesinde etkin olduğunu / 000-default adlı bir dosya olduğunu fark ettim. Görünüşe göre apache otomatik olarak benim varsayılan olarak 000-varsayılan olarak yeniden yüklendiğinden emin olmak için yeniden adlandırır. - John
sonuçlarını gönderebilirsiniz: / usr / sbin / apache2 -S
Hmm ... "apache2: kötü kullanıcı adı $ {APACHE_RUN_USER}" alıyorum. Bu ne anlama geliyor? - John
apache'yi bir paketten mi yüklediniz? ya da kendin mi derlersin? Yapılandırma değişikliklerini yaptıktan sonra, apache, ps axe | grep apache'yi durduruyorsunuz, durdurulduğundan emin olun, sonra yeniden başlatın? config dosyanızda, Kullanıcı bir değere karşılık gelmelidir, sisteminizde karşılık gelen bir kullanıcı adı var mı?