Hi,
I setup two servers, each proxying to a different backend, one http and one fcgi, and it mostly worked.
Now, I am trying to setup one server that would proxy to the two different backends based on the presence of args or a header...
So I merged both configurations, but I have some issues like many configuration parameters do not work inside a 'if'.
I moved most outside the if, but I am not sure of the effects.
And the headers don't seem to be proxied to the fcgi backend...
Could some knowledgeable people offer some advice on how to fix my configuration file?
Thanks,
JD
PS: here is an extract from my conf:
[code]
http {
upstream backend {
consistent_hash $request_uri;
server 192.168.80.1:999;
server 192.168.80.2:999;
}
upstream backend_hr {
consistent_hash $request_uri;
server 192.168.80.1:888;
server 192.168.80.2:888;
}
server {
location / {
# If there are query params or a Range header, pass first to hr.php
set $to_hr 0;
if ($args) {
set $to_hr 1;
}
if ($http_range) {
set $to_hr 1;
}
# ----- call hr.php before squid ----------------------------------
root /WEBS;
fastcgi_index hr.php;
set $script_name $uri;
set $path_info "";
if ($uri ~ "^(.+.php)(/.+)") {
set $script_name $1;
set $path_info $2;
}
include fastcgi_params_from_uri;
if ($to_hr) {
rewrite ^/(.+)$ /hr.php/$1 break;
fastcgi_pass backend_hr;
}
# ----- straight to squid -----------------------------------------
if ($to_hr = FALSE) {
proxy_pass http://backend;
}
error_page 500 502 404 405 = @fallback;
}
location @fallback {
proxy_pass http://192.168.80.1:999;
}
}
[/code]