I don’t know the answer to that specific question, but I believe
you’re asking the /wrong/ question
Nginx doesn’t execute your PHP, it just passes the requests to another
process. Your PHP apps will be executing in the context of this
different process (such as php-fpm) and it is /that/ process which you
need to inform about an outbound HTTP proxy. The specifics of how you
do that will depend on which process you’ve chosen to contain your
PHP, and the way in which your PHP makes outbound HTTP calls.
Then you’ll have a $_SERVER[‘HTTP_PROXY’] entry for the global $_SERVER.
I don’t think this is right, for a couple of reasons.
Firstly, some reading has suggested that there isn’t a way to force
the stock PHP HTTP request libraries to use a proxy just by setting an
envvar. Witness, for instance, the code-level changes that are
(/were?) required to get a relatively mainstream piece of s/w like WP
to work with an outbound proxy:
Secondly, the specific string mentioned would (unless I’m missing
something, which is very possible!) open a security hole: $SERVER
contains all user-specified HTTP request headers with added "HTTP"
prefixes. The method suggested, if it worked, would mean that, as a
user, I could simply provide a “Proxy: my.proxy.server.ip” header and
get all outbound HTTP traffic (for my request) proxied via my
external server. Thereby exposing internal information such as 3rd
party API passwords, internal HTTP API call details, etc etc.
Again, I may be missing something with either of these points but,
obviously, I don’t see what it might be!
As for the first point, of course that variable needs to be used on the
application side.
The OP suggested that is cased since he described basically that with
the
Apache env var
directive.
As for the second, I was not considering security issues, but:
You need to be able to edit the php-fpm configuration.
You need to do a reload for the config to take effect.
In a properly setup Nginx both of these require root access.
Yes it’s hardly the best way to do things. But then it works and it
isn’t
either the worst.
Note that it’s not a header at all, but a parameter passed through the
FCGI
daemon on each
request.
----appa
On Wed, Nov 6, 2013 at 10:24 AM, Jonathan M.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.