将子域重定向到工作HTTPS-Tomcat(使用NGINX)

时间:2016-10-05 13:56:39

标签: java tomcat redirect nginx https

我在https://very-ugly-and-anoying-domain-name.com:8443/webdir/index.xhtml

处有一个有效的tomcat-web应用程序

现在我想将其缩短为https://appname.nice.com,因此重定向到我的内部https://very-ugly-and-anoying-domain-name.com:8443/appname/

对于所有其他应用,我使用Nginx将子域名http://appname.nice.com重定向到http://very-ugly-and-anoying-domain-name.com:8081/appname/

server {
   listen         80;
   server_name    appname.nice.com;
   location / {
      proxy_pass               http://ugly-looooooooooong.domain.com:8081;
      proxy_set_header         Host $http_host;
      proxy_set_header         X-Real-IP $remote_addr;
      proxy_set_header         X-Forwarded-For $proxy_add_x_forwarded_for;
   }
   root /data/www/appname;
   error_page 403 404 502 503 504 /error.html;
   location /error.html {
       allow all;
       internal;
   }
}

但我从未有过重定向https连接的主题。我认为不需要将密钥库添加到Nginx的东西,因为它已经在tomcat中了。

我不需要HTTP到HTTPS或HTTPS到HTTP。也许有一种方法可以直接在Tomcat中设置它,但我不习惯tomcat-config。

它是如何运作的?

1 个答案:

答案 0 :(得分:0)

您的配置不执行“重定向”,它只是proxies向主机发出“丑陋”域名的请求。对于重定向,您必须返回特定的重定向代码。对于HTTPS,您需要一个在其Subject Alternative Name字段中具有域名appname.nice.com的证书,因为SSL握手会查找它。使用ssl on配置虚拟服务器并使用该证书终止SSL。然后,您可以使用类似的配置将HTTPS请求代理为“丑陋”的域名。