Как создать виртуальный хост, работающий как с http, так и с https?

Как создать виртуальный хост, работающий как с http, так и с https?

Вот как я настроил виртуальный хост:

<VirtualHost mysite> 
  <Directory "/Users/myusername/sitefolder"> 
    Options +FollowSymlinks
    AllowOverride All 
    Order Allow,Deny
    Allow from all
  </Directory> 
  DocumentRoot "/Users/myusername/sitefolder"
  ServerName mysite
  SSLEngine on
  SSLCertificateFile /Users/myusername/certs/server.crt
  SSLCertificateKeyFile /Users/myusername/certs/server.key
</VirtualHost>

С этой конфигурацией я могу просматривать свой сайт только с https, но не с http. Когда я отключаю SSLEngine, я не могу просматривать свой сайт с https, но http работает нормально.

Как мне настроить приведенные выше строки так, чтобы я мог видеть свой сайт, используя как http, так и https?

Я использую OSX Lion, но не думаю, что это имеет большое значение.

Спасибо.

решение1

Вам необходимо создать два виртуальных хоста следующим образом:

<VirtualHost mysite:80> 
  <Directory "/Users/myusername/sitefolder"> 
    Options +FollowSymlinks
    AllowOverride All 
    Order Allow,Deny
    Allow from all
  </Directory> 
  DocumentRoot "/Users/myusername/sitefolder"
  ServerName mysite
</VirtualHost>


<VirtualHost mysite:443> 
  <Directory "/Users/myusername/sitefolder"> 
    Options +FollowSymlinks
    AllowOverride All 
    Order Allow,Deny
    Allow from all
  </Directory> 
  DocumentRoot "/Users/myusername/sitefolder"
  ServerName mysite
  SSLEngine on
  SSLCertificateFile /Users/myusername/certs/server.crt
  SSLCertificateKeyFile /Users/myusername/certs/server.key
</VirtualHost>

Первый — это обычный HTTPхост, а второй обрабатывает ваш HTTPSтрафик.

решение2

Вы также, вероятно, захотите использовать Includeдирективу, чтобы вам не пришлось дублировать конфигурацию между двумя вашими виртуальными хостами -http://httpd.apache.org/docs/2.2/mod/core.html#include.

Связанный контент