Я знаю, что об этом уже несколько раз спрашивали, но даже после того, как пару раз прочитал ответы, я все еще не могу «понять».
У меня есть сервер, на котором запущен Apache2, и я хочу иметь возможность обслуживать два сайта с него: gitorious.myserver.com и redmine.myserver.com. Жалко нужны и http, и https (Redmine доволен только http).
Я совершенно не понимаю, что и куда ставить. Я пробовал редактировать conf.d / redmine.conf, conf.d / gitorious.conf, httpd.conf, sites-available / gitorious и sites-available / gitorious-ssl и должен признать, что все это довольно запутанно. Мне удается заставить работать некоторые вещи (например, http, но не https), но не все одновременно. Я тоже не могу понять разницу между этими файлами.
И нужно ли мне делать что-то особенное для вещей, которые я хочу разместить в sub-uri на www.myserver.com (http://www.myserver.com/phpmyadmin или https://www.myserver.com/someservice например)? Или просто создайте виртуальный сервер для этого адреса так же, как и для остальных (я так понимаю).
http.conf:
NameVirtualHost *:80
NameVirtualHost *:443
<VirtualHost 192.16.160.65:443>
ServerAdmin poutmar@localhost
DocumentRoot /var/www/gitorious/public
<Directory /var/www/gitorious/public>
Allow from all
Options -MultiViews FollowSymLinks
</Directory>
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
</VirtualHost>
<VirtualHost *:80>
ServerName gitorious.myserver.com
DocumentRoot /var/www/gitorious/public
<Directory /var/www/gitorious/public>
Allow from all
Options FollowSymLinks
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName redmine.myserver.com
DocumentRoot /var/www/redmine/public
<Directory /var/www/redmine/public>
Allow from all
Options -MultiViews FollowSymLinks
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName www.myserver.com
DocumentRoot /var/www
<Directory /var/www/>
Allow from all
Options FollowSymLinks
</Directory>
</VirtualHost>
<VirtualHost *:443>
ServerName www.myserver.com
DocumentRoot /var/www
<Directory /var/www>
Allow from all
Options FollowSymLinks
</Directory>
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
</VirtualHost>
ports.conf:
Listen 80
<IfModule mod_ssl.c>
# If you add NameVirtualHost *:443 here, you will also have to change
# the VirtualHost statement in /etc/apache2/sites-available/default-ssl
# to <VirtualHost *:443>
# Server Name Indication for SSL named virtual hosts is currently not
# supported by MSIE on Windows XP.
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
Я не понимаю комментарий в ports.conf.
Для описанной вами установки вам понадобятся:
*:443
для gitorious.example.com
с участием Поддержка SSL / TLS*:80
для gitorious.example.com:
*:80
для redmine.example.com
*:80
для example.com
и www.example.com
(или, альтернативно, просто *.example.com
).Для других веб-приложений (например, упомянутого phpMyAdmin) вы можете просто использовать Псевдонимes on www.example.com
.