map uri fastcgi_pass

Nikolay nginx-forum at nginx.us
Wed Sep 17 08:25:08 UTC 2014


Здравствуйте, есть задача: перенаправить запрос c uri вида
/some/path/03_dfsakfa на бекенд server03.domain.tld с номером 03(берется из
uri).
Все остальные запросы надо отправлять на upstream fpm.

OS Debian 7.6
nginx version: nginx/1.2.1

При перезапуске nginx получаю ошибку:
Restarting nginx: nginx: [emerg] invalid number of the map parameters in
/etc/nginx/nginx.conf

Подскажите, что я делаю неправильно, где ошибка?

nginx.conf

http {
...
...
        upstream fpm {
                server 1.1.1.1:9001;
                server 2.2.2.2:9001;
        }

        map $uri $back {
        default "fpm";
        ~*"/some/path/(?<key>^\d{2})$(.+)$" server$key\.domain\.tld;

        }
...
...
server {
...
                location / {
		root /some/path;
		if (!-e $request_filename) {
                     rewrite ^/(.*)$ /index.php?$args last;
                     break;
                }

		location ~ \.php$ {
                include fastcgi_params;
		root /some/path;
                fastcgi_pass $back;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
        }
}

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



Подробная информация о списке рассылки nginx-ru