Problem with http/https interoperation
benimaur at gmail.com
Mon Apr 21 08:14:18 UTC 2014
I have a web application, which use nginx as frontend reverse-proxy
sever. It's configured to use https to interact with user agent. Several
tomcats are used as backend application servers. The connection between
nginx and tomcats is http. The network structure is illustrated as
Browser -- https --> nginx --- http --> tomcat1
\-- http --> tomcat2
The normal request works ok. Problem comes when my program returns
302/Redirection to user agent. Since tomcat has no idea about https'
environment, the location field in http response header is set as:
"Location: http://redirect.url.com". After receiving that, the browser will
launch subsequent requests through http.
Now I overcome this by redirecting all requests towards 80 to 443:
rewrite ^(.*) https://$server_name$1 permanent;
but this method has two obvious defects:
1. the first request launch by use agent is still http, which will
2. nginx rewrite module works by returning 301/Move Permanently, I
think too much redirection between user agent and my application will
result in poor efficiency.
I wonder if there is some ready-made module to manipulate the 302
Location header, or any other better ways to workaround this problem.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the nginx