Я бегу YouTrack экземпляр развернут с использованием Tomcat 7, и он отлично работает на http://example.com:8080/youtrack
Apache уже настроен для поддержки SSL для основного домена (у меня есть файл .pem). Обе https://example.com
и http://example.com
доступны без проблем.
Порт 8443 уже используется какой-то другой службой (https://example.com:8443
показывает мне панель администратора Plesk).
Теперь я хочу настроить YouTrack для использования https://youtrack.example.com
Как я могу этого добиться?
Нужно ли мне настраивать Tomcat для поддержки SSL (генерировать отдельный ключ и т. Д.) Или просто проксировать запросы от Apache к Tomcat?
Думаю, первым делом нужно настроить YouTrack для доступа на https://example.com:8444/youtrack
, затем проксируйте запросы с помощью Apache mod_proxy
.
Как я могу это сделать?
Мой /var/lib/tomcat7/conf/server.conf
по умолчанию, без изменений: http://pastie.org/9385045
Мой /usr/share/tomcat7/bin/setenv.sh
содержит запись для изменения URL-адреса YouTrack по умолчанию: -Djetbrains.youtrack.baseUrl=http://youtrack.example.com
Конфигурация виртуальных хостов:
$ cat /etc/apache2/sites-enabled/default
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/default
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/default>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Хост SSL:
$ cat /etc/apache2/sites-enabled/default-ssl
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin admin@example.com
DocumentRoot /var/www/default
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/default>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/ssl_access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/mailserver.pem
SSLCertificateKeyFile /etc/ssl/private/mailserver.pem
#SSLVerifyClient require
#SSLVerifyDepth 10
#SSLOptions +FakeBasicAuth +ExportCertData +StrictRequire
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
# MSIE 7 and newer should be able to use keepalive
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
</IfModule>
Похоже, лучший выбор mod_proxy
было бы mod_jk
.
Видеть Работа с mod_jk.
Вам не нужно настраивать SSL для tomcat, просто используйте Apache для проксирования запроса на http://example.com:8080/youtrack
через mod_proxy.
Сначала сгенерируйте / купите сертификат для нового домена youtrack.example.com
. Затем добавьте эту запись в свой config.
<VirtualHost *:443>
ServerName youtrack.example.com
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
SSLEngine on
SSLCertificateFile /your/ssl/public/path/mailserver.pem
SSLCertificateKeyFile /your/ssl/private/path/mailserver.pem
ProxyPass / http://example.com:8080/youtrack/
ProxyPassReverse / http://example.com:8080/youtrack/
</VirtualHost>