unknown directive "if" in /usr/local/nginx/nginx.conf
Igor Sysoev
igor at sysoev.ru
Wed Nov 25 00:06:11 MSK 2009
On Tue, Nov 24, 2009 at 01:14:28PM -0500, johndesp wrote:
> Igor,
>
> Thanks. My ultimate goal is to have the flexibility to inspect the incoming uri and make decisions as to what backend host to send the request to.
>
> For instance,
>
> I might want
>
> Incoming URI /johndesp/( {1}) ----> proxy_pass http://host1/johndesp/whatever
>
> Incoming URI /johndesp/([0-9] {1}) ----> proxy_pass http://host1/johndesp/whenever
>
> example
>
> /johndesp/b ---------------- proxy_pass http://host1:8080/johndesp/whatever * notice this is not http://host1:8080/johndesp/whatever/b
>
> likewise I would want the following:
>
> johndesp/5 ---------------- proxy_pass http://host2:8080/johndesp/whenever * notice this is not http://host1:8080/johndesp/whatever
>
> I tried to use the following..however, I did not get the desired result:
>
> location "~* ^/johndesp/whatever/( {1}"{
> proxy_pass http://host1:8080/johndesp/whatever;
> proxy_set_header X-Real-IP $remote_addr;
> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> proxy_set_header Host $http_host;
> proxy_redirect off;
> }
>
> but I get this error:
> : the using of the regex " ^/johndesp/whatever/( {1}" requires PCRE library in /usr/local/nginx/nginx.conf:43
If you do not need the rewrite module, but want to use regex in
locations, etc., then you need to
./configure --with-pcre --without-http_rewrite_module
Also, note that you can not use URI part "/johndesp/whatever" in proxy_pass
if location is given by regex:
location ~* "^/johndesp/whatever/( {1})" {
proxy_pass http://host1:8080/johndesp/whatever;
because nginx does not know what it should replace in original URI.
You may use
location ~* "^/johndesp/whatever/( {1})(.+)$" {
proxy_pass http://host1:8080/johndesp/whatever/$2;
or
location ~* "^/johndesp/whatever/( {1})" {
proxy_pass http://host1:8080;
or
location /johndesp/whatever/ {
proxy_pass http://host1:8080/something/els/;
--
Igor Sysoev
http://sysoev.ru/en/
More information about the nginx
mailing list