Tümünü yakala * (joker karakter) takma adı kullanırken belirli alan adlarını Apache2 serverAlias ​​öğesinin dışında tutma


10

Özel etki alanlarını desteklemesi gereken bir web uygulamam var, bu bağlamda aşağıdaki ad tabanlı sanal sunucuyu ayarladım:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias * *.example.com www.example.com example.com
    RailsEnv production
    RackEnv production
    DocumentRoot /srv/www/example/current/public
    <Directory /srv/www/example/current/public>
             AllowOverride all
             Options -MultiViews FollowSymLinks
    </Directory>
    ErrorLog /srv/www/example/log/error.log
    TransferLog /srv/www/example/log/access.log
</VirtualHost>

* Sunucu takma adı olarak fark ettiniz mi? sunucudaki tüm alan adlarını yakalar. Ancak, bu sunucuda bu listenin dışında tutulmasını istediğim başka sitelerim var. Dışlanan alan adlarının bir listesine sahip olmak, bir kullanıcının bu hizmette bir sunucu olarak kaydedilebileceği her alanı manuel olarak ayarlamaktan daha ekonomiktir ...

Belki de bu gitmek için en iyi yol değildir, ancak diğer belirli alanların farklı uygulamalara yönlendirilmesine izin verirken, herhangi bir etki alanını yakalayabilecek bir web uygulaması kurmak için en iyi (nispeten basit) şekilde yardım arıyorum .

Yanıtlar:


12

Apache, bir eşleşmeyi alan adlarının tanımlandığı sırayla arar. Sorunu doğru anlarsam, tüm ana bilgisayarları yakalamadan önce hariç tutulacak ana bilgisayarlarınızı tanımlayarak çözülebilir.

<VirtualHost *:80>
    ServerName excluded.example.com
    ServerAlias  something.example.com ...
    ...
</VirtualHost>
<VirtualHost *:80>
    ServerName example.com
    ServerAlias * *.example.com www.example.com example.com
    RailsEnv production
    ...
</VirtualHost>

1
Evet, haklısınız, ancak tüm shenanigans'ların sitelerde kullanılabilir ve sitelerin etkin bir dizinleri ile yönetildiği ve her sanal ana bilgisayar tanımının kendi özelinde var olduğu varsayılan bir Ubuntu 10.4 yığınında nasıl yapılacağı konusunda şaşkınım dosya ... bu durumda siparişi nasıl kontrol ederim?
Victor S

Dosyalar alfabetik sırayla yüklenir (ls için varsayılan sıralama düzeni).
user9517

1
önce gelmesi gereken bir site tanımı için 000-excluded.example.com.conf, sitelerin kullanılabilir dizininde olduğu gibi adlandırın.
Brian Minton

Aynı şeyi yapmak istiyordum ve bu benim için işe yaramıyor. "SunucuAdı excluded.example.com \ n Yeniden Yönlendir / example.com/excluded " içeren excluded.example.com VirtualHost , daha genel VirtualHost'a yapılan tüm isteklerin yeniden yönlendirilmesine neden oldu (bu, yapılandırmadaki belirli VirtualHost'u kesinlikle izledi).
quuxman
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.