From 7f4f46a1e2f0433bf428bc8c3566373a47023d84 Mon Sep 17 00:00:00 2001 From: Jason Staten Date: Mon, 9 Sep 2013 12:12:01 -0600 Subject: [PATCH 1/2] Set X-Forwarded-Proto Header Heroku passes the X-Forwarded-Proto header to indicate the protocol of the incoming request[1]. Ruby's rack relies on this header to determine if a request is HTTPS[2]. Also, the X-Scheme header was removed to eliminate redundant passing of the scheme. [1]: https://devcenter.heroku.com/articles/http-routing#heroku-headers [2]: https://github.com/rack/rack/blob/master/lib/rack/request.rb#L77 --- plugins/nginx-vhosts/post-deploy | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/nginx-vhosts/post-deploy b/plugins/nginx-vhosts/post-deploy index 29cc35eae..858710309 100755 --- a/plugins/nginx-vhosts/post-deploy +++ b/plugins/nginx-vhosts/post-deploy @@ -46,7 +46,7 @@ server { proxy_set_header Upgrade \$http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host \$http_host; - proxy_set_header X-Scheme \$scheme; + proxy_set_header X-Forwarded-Proto \$scheme; proxy_set_header X-Forwarded-For \$remote_addr; } } @@ -64,6 +64,7 @@ server { proxy_set_header Upgrade \$http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host \$http_host; + proxy_set_header X-Forwarded-Proto \$scheme; proxy_set_header X-Forwarded-For \$remote_addr; } } From ba1f1bc30d4b39768dfd636df58a5757787ce440 Mon Sep 17 00:00:00 2001 From: Jason Staten Date: Mon, 9 Sep 2013 15:46:19 -0600 Subject: [PATCH 2/2] Add X-Forwarded-Port and X-Request-Start Adding additional proxy headers to match what Heroku provides. Also, X-Request-Start is compatible with NewRelic's latest agent[1]. [1]: http://blog.newrelic.com/2013/02/21/using-new-relic-on-heroku-read-how-our-new-ruby-agent-measures-queue-time/ --- plugins/nginx-vhosts/post-deploy | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugins/nginx-vhosts/post-deploy b/plugins/nginx-vhosts/post-deploy index 858710309..b1d8bde8c 100755 --- a/plugins/nginx-vhosts/post-deploy +++ b/plugins/nginx-vhosts/post-deploy @@ -48,6 +48,8 @@ server { proxy_set_header Host \$http_host; proxy_set_header X-Forwarded-Proto \$scheme; proxy_set_header X-Forwarded-For \$remote_addr; + proxy_set_header X-Forwarded-Port \$server_port; + proxy_set_header X-Request-Start \$msec; } } EOF @@ -66,6 +68,8 @@ server { proxy_set_header Host \$http_host; proxy_set_header X-Forwarded-Proto \$scheme; proxy_set_header X-Forwarded-For \$remote_addr; + proxy_set_header X-Forwarded-Port \$server_port; + proxy_set_header X-Request-Start \$msec; } } EOF