我们有一个运行在EC2实例的Tomcat上的应用程序。 我们在configuration了以下监听器的EC2前面有一个ELB:
ELB port 80 --> nginx port 80 --> redirect | port 443 <--> tomcat port 8080 <---
在EC2实例中,我们运行nginx并执行反向代理,将端口80上的连接redirect到端口8080(Tomcat)。 这是configuration:
http { server { listen 80 default_server; server_name _; return 301 https://$host$request_uri; } }
运行在同一台服务器上的Tomcatconfiguration为端口8080:
<Connector port="8080" maxThreads="300" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" />
大多数时候,这工作正常,但是当我们的应用程序返回非HTTPSstream量时,这在less数情况下会产生问题。 在研究这个问题的时候,我发现了这篇文章 。
系统是由承包商部分configuration的,他们赞成使用在EC2实例上运行的nginx作为反向代理。 我的问题是,如果在同一台服务器上运行nginx作为反向代理,如果Tomcat可以执行相同的function,并通过安全端口redirect非安全stream量,那么在使用nginx作为反向代理的情况下是否有优势?在链接的文章)? 为什么在这种情况下使用nginx?