passing header information on to backend Apache/PHP
Peter Langhans
peter.langhans at incipience.co.uk
Sun Apr 5 18:25:05 MSD 2009
Larry,
thanks for your reply again. Sorry I stole your time for my own dumbness.
It's totally possible to do it via headers. The example I gave above, works
perfectly. I have just been too dump to test it in https (I tested in http)
and wondered why the header does not come through as expected :( Oh lord.
So just for reference. As the manual states correctly, you can pass any
header information on to your backend scripts via the
proxy_set_header Header-Name Header-Vale;
directive. Apache does NOT filter it out, and it's visible within PHP by
using one of the two following options:
1.) use the normal $_SESSION variable. CAVEAT: when using the $_SESSION
variable your header "Header-Name" becomes "HTTP_HEADER_NAME" (watch casing
and underscore instead of dash)
2.) use the apache_request_headers function to retrieve original/unchanged
values (http://uk.php.net/apache_request_headers)
Thanks for your time, folks!
Pete
On Sun, Apr 5, 2009 at 2:40 PM, Larry Bates <larry.bates at vitalesafe.com>wrote:
> What about passing parameter to your PHP script using rewrite rule?
>
> rewrite ^(.*)$ http://<url to backend server or IP:port>/<http://%3Curl+to+backend+server+or+IP:port%3E/>
> login.php?proto=SSL
>
> I might not be understanding your exact problem though.
>
> -Larry Bates
>
> ------------------------------
> *From:* owner-nginx at sysoev.ru [mailto:owner-nginx at sysoev.ru] *On Behalf Of
> *Peter Langhans
> *Sent:* Sunday, April 05, 2009 8:03 AM
> *To:* nginx at sysoev.ru
> *Subject:* passing header information on to backend Apache/PHP
>
> Hi,
>
> I'm using nginx 0.6.35, apache 2.0.63 and php 5.2.9.
>
> My problem is, that I need my php scripts to know in some way or another
> whether SSL is used or not (to include either https or http javascript files
> e.g.).
>
> When using nginx as webfrontend proxy, it accepts all the ssl connections
> and it's working fine, but when I proxy through to apache, the knowledge
> about SSL is 'lost'. If possible, I don't want to be using different ports
> for proxying through to apache.
>
> I thought it'd be enough to set headers like:
>
> for 80:
> proxy_set_header X-Secure of;
>
> for 443:
> proxy_set_header X-Secure on;
>
> put I have not found a way how I could retrieve those values from within
> the php script. They seem to be filtered out by Apache.
>
> Does anyone have an idea how I can get any custom set header, set in the
> nginx.conf through to the php scripts?
>
> Thanks a lot,
> Peter
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx/attachments/20090405/5d3b12f2/attachment.html>
More information about the nginx
mailing list