Parece que uma melhor escolha em relação a mod_proxy
seria mod_jk
.
Veja Trabalhando com o mod_jk .
Eu tenho uma instância YouTrack implementada usando o Tomcat 7 e ele funciona bem em http://example.com:8080/youtrack
O Apache já está configurado para suportar o SSL para o domínio principal (eu tenho o arquivo .pem). Ambos https://example.com
e http://example.com
estão acessíveis sem problemas.
A porta 8443 já é usada por algum outro serviço ( https://example.com:8443
me mostra o painel de administração do Plesk).
Agora eu gostaria de configurar o YouTrack para usar https://youtrack.example.com
Como posso conseguir isso?
Preciso configurar o Tomcat para suportar o SSL (gerar chave separada etc.), ou apenas proxy as solicitações do Apache para o Tomcat?
Eu acho que o primeiro passo seria configurar o YouTrack para ser acessível em https://example.com:8444/youtrack
,
em seguida, proxy as solicitações usando mod_proxy
do Apache.
Como posso fazer isso?
Meu /var/lib/tomcat7/conf/server.conf
é o padrão, sem alterações: link
Meu /usr/share/tomcat7/bin/setenv.sh
contém a entrada para alterar o URL padrão do YouTrack:
-Djetbrains.youtrack.baseUrl=http://youtrack.example.com
Configuração de hosts virtuais:
$ 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>
Host SSL:
$ cat /etc/apache2/sites-enabled/default-ssl
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin [email protected]
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>
Parece que uma melhor escolha em relação a mod_proxy
seria mod_jk
.
Veja Trabalhando com o mod_jk .
Você não precisa configurar o SSL para o tomcat, apenas use o Apache para fazer proxy do pedido para http://example.com:8080/youtrack
via mod_proxy .
Primeiro, gere / compre o certificado para o novo domínio youtrack.example.com
. Em seguida, adicione esta entrada na sua configuração.
<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>