Sanal Ana Bilgisayar Varsayılana Yönlendirir


2

Debian ve Apache'yi çalıştırıyorum.

Dev sunucumda yeni bir dev ortamı yaratmak istiyorum. Buna dev2 diyelim. Şu anda dev sunucu sadece dev barındırıyor. Üretim sunucum, üzerinden erişilebilen canlı siteyi barındırıyor *.example.com. dev2.example.comKendi docroot ile ayarlamak için aşağıdaki adımları takip ettikten sonra , dev2 URL'sini dev.example.com, dev sunucudaki varsayılan siteye iletir .

İşte attığım adımlar:

  • Hosting hesabımızda, wwwüretim sunucusunun IP'sine gitmek için A kaydımız var. Başka Bir A kaydı dev.example.comdev sunucusuna gider ve bu URL varsayılan dev web sitesini yükler. dev2Dev sunucusunun IP adresini de gösteren yeni bir A kaydı oluşturdum .
  • dev2.example.comÇalıştığından emin olmak için pinged ve hiçbir paket kaybı olmadı.
  • Yeni bir docroot ve sahte bir dizin oluşturdum: /var/www/html/dev2/docroot/index.html
  • Sonra, dev2.confiçinde bir dosya /etc/apache2/sites-availableoluşturdum ve içinden bir bağlantı oluşturdum /etc/apache2/sites-enabled.
  • Sonra komutu koştum sudo a2ensite dev2.confve apache üzerinden yeniden yükledim service apache2 reload. Son olarak, tarayıcının önbelleğini temizledim ve bu işe yaramadığında, apache2'yi yeniden başlattım.

Neyi kaçırıyorum? İşte dev2.confdosyanın içeriği .

<VirtualHost xxx.xxx.xxx.xxx:80>
        ServerAdmin tech@example.com
        ServerSignature email
        ServerName dev2.example.com
        DirectoryIndex  index.php index.html index.htm index.shtml
        DocumentRoot /var/www/html/dev2/docroot
        HostNameLookups off
        RewriteEngine on

        # Force SSL
        RewriteCond %{HTTP_HOST} ^dev2\.example\.com$ [NC]
        RewriteRule ^(.*)$ https://dev2.example.com$1 [L,R=301]
        RewriteCond %{HTTPS} !=on
        RewriteRule ^(.*)$ https://dev2.example.com$1 [L,R=301]

        # Force our domain name
        RewriteCond %{HTTP_HOST}   !^dev2\.example\.com [NC]
        RewriteCond %{HTTP_HOST}   !^$
        RewriteRule ^/(.*)         https://dev2.example.com/$1 [L,R]

        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>

        <Directory /var/www/html/dev2/docroot>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Require all granted

                # For friendly URLs
                RewriteEngine on
                RewriteBase /
                RewriteCond %{REQUEST_FILENAME} !-f
                RewriteCond %{REQUEST_FILENAME} !-d
                RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Düzenleme: Ayrıca ServerAlias dev2.example.comboşuna ServerName altında satırı eklemeye çalıştı .


Burada IP adresi atama hattını ayarlamayı deneyin <VirtualHost xxx.xxx.xxx.xxx:80>için <VirtualHost *:80>ve sonra böyle Apache yeniden service apache2 gracefulkullanmak yerine reload.
JakeGould

Yanıtlar:


2

İstediğiniz asıl etki alanına göre (şimdi yeniden düzenlenir, temsil edilir example.com), mevcut yapılandırmalarınızda bir miktar karışıklık yaşarsınız:

wget http: // dev .example.com -
2017-03-14 22: 20: 03 - http://dev.example.com/
dev.example.com ... 206.123.xxx.182
çözülüyor dev.example.com | 206.123.xxx'e bağlanılıyor. 182 |: 80 ... bağlı.
HTTP isteği gönderildi, yanıt bekleniyor ... 301 Kalıcı Olarak Taşındı
Konum: http s : // dev2 .example.com / [Aşağıdaki]

Nedense düz http sitesi deviçin https sitesine yönlendirir dev2. Kalıcı yönlendirmeler (301 yanıt) çoğu web tarayıcısı tarafından önbelleğe alınır, bu nedenle, uyguladığınız her bir yapılandırma değişikliğini test ederken lütfen dikkatli olun. Ya komut satırı araçlarıyla test edin ya da her test için yeni bir özel tarayıcı penceresi kullanın ...

wget http: // dev2 .example.com
URL , bir HSTS politikası nedeniyle HTTPS'ye dönüştürüldü -
2017-03-14 22: 24: 45-- https://dev2.example.com/
dev2.example.com ... 206.123.xxx.182 çözüldü .example.com | 206.123.xxx.182 |: 443 ... bağlı.
HTTP isteği gönderildi, yanıt bekleniyor ... 302 Bulunan
Konum: http s : // dev .example.com / [Aşağıdaki]

dev2Site farklı bir şey yapar dev; HTTPS'ye yönlendirmek için bir HSTS ilkesi uygulanır ve ardından bir yeniden yönlendirme (bu durumda geçici bir 302 yönlendirmesi) devgerçekleşir.

Özetle: ' deva yönlendirme yapıyor dev2 ve dev2yönlendirme yapıyor dev.

Aşağıdakiler için yapılandırma sadece kontrol etmeniz gerekir dev2ama aynı zamanda için yapılandırma dev80 numaralı bağlantı noktasında düz http sanal ana yanı sıra 443 numaralı bağlantı noktasında SSL sanal konak yapılandırma hem.


Cevabınız için teşekkürler. /Etc/apache2/sites-available/dev2.conf adresinde etkinleştirilmiş sitelerde bir sembolik bağlantı oluştururken bir yazım hatası yazdım, böylece siteler-available / dev.conf 'a yönlendiriyordum. Saygılarımızla.
Christia
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.