Hello! On Thu, May 16, 2013 at 07:12:57AM -0400, AMax wrote:
> Есть такой server: > > server { > listen 80; > server_name example.com www.example.com; > > access_log /var/log/nginx/example.com/access.log main; > error_log /var/log/nginx/example.com/error.log; > include /etc/nginx/cloudflare_params; > > location /w/images/ { > root /var/www/data/example.com; > # log only hotlinking > if ($http_referer ~* "^http://(www\.)?example\.com/.*$" ) { > access_log off; > } > } > > location /w/skins/ { > root /var/www/data/example.com; > access_log off; > } > > location ~ ^/w/extensions/.*?\.(sql|php)$ { return 403; } > > # location ^~ /w/load.php { > # proxy_pass http://127.0.0.1:81/; > # include /etc/nginx/proxy_params; > # access_log off; > # } > > location / { > proxy_pass http://127.0.0.1:81/; > include /etc/nginx/proxy_params; > } > } > > Если раскомментировать location ^~ /w/load.php, он перестает работать, > точнее возвращает некорректный ответ от сервера, хотя, вроде бы, должен > обрабатываться тем же backend с теми же параметрами, только не писать в > журнал. Поскольку используется proxy_pass с URI - указанный URI заменяет совпавшую с location'ом часть URI запроса. Для location / - замена "/" на "/" ни на что не влияет, а вот для location /w/load.php - замена "/w/load.php" на "/" логично приводит к тому, что оно перестаёт работать. Проще всего убрать "/" в конце proxy_pass: location = /w/load.php { proxy_pass http://127.0.0.1:81; ... } Подробнее см. http://nginx.org/r/proxy_pass/ru. -- Maxim Dounin http://nginx.org/en/donation.html _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru