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

标签 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.comhttp://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 连接的话题。我认为不需要将 keystore 添加到 Nginx,因为它已经在 tomcat 中了。

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

它是如何工作的?

最佳答案

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

关于java - 将子域重定向到工作 HTTPS-Tomcat(使用 NGINX),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39875981/

相关文章:

java - 使用接口(interface)实现所有 Activity 的代码

java - 突然无法从eclipse导出到war文件

java - 为什么 Hibernate 插入带有外键的父行而不插入子行?

java - Eclipse:变量的调试和检查导致 com.sun.jdi.ObjectCollectedException

java - 在 Tomcat 中部署之前如何监控 PermGen 空间使用情况

redirect - 带或不带尾部斜杠的 Nginx 永久重定向

java - tomcat 中的两个 war 文件与每个 tomcat 中的每个 war 文件 - 性能比较

java - 如何配置 Tomcat 以在出站连接中使用 TLS v1.2

c - 子进程执行某些系统命令的结果无法通过管道发送到父进程

linux - 将脚本中的所有命令 stdout/stderr 重定向到日志文件