Hi,
So basically here is what I’m trying to accomplish:
-
I have several different rails apps running inside passenger
standalone instances. I’d use the module, but I need to have separate
ruby versions / parameters for each, so they’re happily on standalone
instances. -
The standalone instances run fine and I can connect to them.
-
Based on the presence of an argument “needle” in the GET params, I
want to proxy pass to different locations. If the $needle is present, I
want to proxy to $needle.somehost.com. Otherwise I want to proxy to
localhost:3000. I know this sounds a little crazy, and I’d rather not
get into “why,” suffice it to say it’s a pretty unique setup.
Here is my config, though it isn’t quite working out. I get internal
errors from nginx after a long timeout.
server {
listen host.ip.address:443 ssl;
server_name host.server.com;
root /var/www;
ssl_certificate /my.crt;
ssl_certificate_key /my.key;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location / {
resolver dns.ip.address;
if ($args ~* needle=([a-z0-9-]+)&? ) {
set $needle $1;
proxy_pass https://$needle.somehost.com;
break;
}
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
}
}
Any assistance would be greatly appreciated.
–
Daniel J.
Inigral, Inc. | The Social Web For Education