Conditionals in fastcgi config
Igor Clark
igor at pokelondon.com
Tue Oct 30 19:04:45 MSK 2007
Hi Igor and nginx people,
We use nginx as a front end on various development machines in our
studio to route to installations of Apache 1, Apache 2, PHP/FCGI, and
Ruby/Mongrel on each machine, as appropriate depending on SERVER_NAME
conventions, using our private DNS domain.
We have some circumstances under which we need to grant external
access to machines with this setup, and we do this using Apache
reverse proxy on the firewall. (Eventually this will be replaced by
nginx, but it's got a lot of legacy stuff which will need some time
set aside for converting.) Hence http://outside.dns.name/index.php is
proxied through to http://inside.dns.name/index.php.
This means that the SERVER_NAME value seen by the web application
(PHP script in this case) is inside.dns.name.
We often configure web applications on a per-host basis, so that e.g.
database configuration information is kept in a hash keyed by
SERVER_NAME values. This means we need to have SERVER_NAME contain
the outside.dns.name.
We've achieved this straightforwardly by setting
fastcgi_param SERVER_NAME $http_x_forwarded_host;
which works nicely, but means that all applications responding to
different DNS names (not viewed externally via Apache reverse proxy)
fail, because they don't have an X-FORWARDED-HOST header, thus fall
back to the local machine hostname, which is not in the configuration
hash.
We can get round this by creating separate server {} configurations
for applications which need to be served behind a remote reverse
proxy, but that defeats the object of our generic per-host
configuration based on hostnames.
So ideally I'd like to do something like:
fastcgi_param SERVER_NAME $server_name;
if ($http_x_forwarded_host) {
fastcgi_param SERVER_NAME $http_x_forwarded_host;
}
but: firstly "fastcgi_param" is not supported inside "if", and
secondly I don't know how or if this "overriding" would work.
What's the best way to do this, please?
Thanks very much
Igor
--
Igor Clark // POKE // 10 Redchurch Street // E2 7DD // +44 (0)20 7749
5355 // www.pokelondon.com
--
Get on Board with WWF for a stronger Climate Change Bill
http://getonboard.wwf.org.uk/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx/attachments/20071030/9113ebaa/attachment.html>
More information about the nginx
mailing list