Nginx postgres problem

arunh nginx-forum at nginx.us
Tue Mar 4 15:15:25 UTC 2014


Hello All,

I am newbie to Nginx and I am using Nginx with PostgreSQL database.

When there is a http request to the server I want to extract one of the
input variables in the request,
query the Database and retrun the result, the variable inside the
postgres_query is empty.

But when I try to print the value of "$1" variable and also after assigning
it to the variable "$tenantID" I do get the value.

I guess in the eval block the postgres_escape is not getting set.

Can some one throw some light on this issue if I am doing something wrong.

Also is there any supporting module to use the echo statements inside the
postgres block.

Thanks,
Arun

Request :
http://localhost/tenantservices/tenantID/service/userID/EndPointName

location ~ ^/tenantservices/(.*)\/(.*)\/(.*)\/(.*)
{
echo teh complete request uri is :$request_uri;
echo The first parameter is :$1;
echo the second aprameter is :$2;

echo the third parameter is :$3;
echo the fourth param is :$4;

    set $tenantID $1;
    set $serviceName $2;
    set $userID $3;
    set $endPointName $4;
echo After setting the tenantID:$tenantID;

    eval_subrequest_in_memory  off;
    eval $max_no_clusters
   {
        default_type 'text/plain';
        postgres_pass   tenantdatabase;
        postgres_escape $tenantURID $tenantID;
        postgres_query   "SELECT max_no_clusters FROM load_balancer WHERE
id=$tenantURID";
        postgres_output  value  ;
   }
  
  echo MaxNoOfclusters is : $max_no_clusters;
}

Log message on Nginx:
2014/03/04 15:46:05 [error] 31995#0: *152 postgres: "postgres_output value"
received 0 value(s) instead of expected single value in location
"/eval_155080700" while processing result from PostgreSQL database,

Posted at Nginx Forum: http://forum.nginx.org/read.php?2,248077,248077#msg-248077



More information about the nginx mailing list