unknown directive "if" in /usr/local/nginx/nginx.conf
Maxim Dounin
mdounin at mdounin.ru
Tue Nov 24 22:11:58 MSK 2009
Hello!
On Tue, Nov 24, 2009 at 12:37:44PM -0500, johndesp wrote:
> Guys,
>
> The following is what I have done. My goal is ultimately use regex to inspect the incoming URI and make proxy_pass decisions. The "if" statement below is just a test to validate the if statements work. As you can see, I get the "unkown directive" error. Do you think I need to use the --with-pcre= option?
>
> yum install gcc openssl-devel pcre-devel zlib-devel
> yum install mlocate
>
> ./configure --sbin-path=/sbin/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-http_perl_module --without-http_rewrite_module
You have to remove "--without-http_rewrite_module" configure
argument. It disables rewrite module where "if" directive
defined.
[...]
> location /johndesp/ {
> 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;
> proxy_pass_request_headers on;
> if (!-f $request_filename) {
> proxy_pass http://ec2-75-101-166-203.compute-1.amazonaws.com:8080/johndesp/;
> }
Also, it's good idea to use try_files or error_page fallback
instead. See here for details:
http://wiki.nginx.org/NginxHttpCoreModule#error_page
http://wiki.nginx.org/NginxHttpCoreModule#try_files
Maxim Dounin
More information about the nginx
mailing list