Já faz mais de seis meses, mas vou tentar. Eu acho que você está perdendo o cabeçalho X-Forwarded-Proto. Configuração de host virtual relevante no nginx:
server jira.site.com;
...
location /jira {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8080/jira;
}
Em alguns casos, como o JIRA acima, por exemplo, você precisa dizer ao Tomcat que está por trás do proxy:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443"
scheme="https"
proxyName="jira.site.com"
proxyPort="443"/>
Dessa forma, você pode acabar com várias portas para cada aplicativo, mas funciona bem.
Quanto a troyengel's, por que me incomodaria com "Nginx + Tomcat"? Bem, o nginx é muito mais rápido e não leva quase nada a memória e o cpu-wise. Dessa forma, há mais recursos para desperdiçar, no Tomcat, por exemplo. : /
Finalmente, eu não chamaria o Apache-AJP13-Tomcat de uma integração adequada, não mais. Depois de ativar o Ouvinte APR do Tomcat:
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
e sendfile (com a biblioteca tcnative ), a coisa toda simplesmente voa. Então você apenas serve conteúdo estático diretamente do nginx e ainda tem energia suficiente para executar os sites php favoritos de todos, fazendo proxy para php-fpm.
Bem, isso é apenas da minha experiência, apesar de tudo.