Re: Циклический реврайт
Igor Sysoev
igor на sysoev.ru
Чт Июл 29 19:23:36 MSD 2010
On Thu, Jul 29, 2010 at 05:11:31PM +0200, Anton Bessonov wrote:
> Захотелось (вернее пришлось) вынести часть под отдельного юзера.
>
> Первый энджин:
>
> server {
> listen 80;
> server_name host.ru;
> error_log /tmp/error.log;
>
> location ~* ^.+.(html|gif|jpg|png|css|zip|rar|exe|com|ico)$ {
> expires 30d;
>
> proxy_buffering off;
> proxy_pass http://127.0.0.1:8049;
> }
>
> location / {
> [...]
>
> Второй энджин:
>
> user myuser;
> worker_processes 4;
>
> error_log /tmp/error2.log;
>
> pid /var/run/nginx_myuser.pid;
>
> events {
> worker_connections 1024;
> }
>
> http {
> include /usr/local/nginx/mime.types;
> default_type application/octet-stream;
>
> sendfile on;
> keepalive_timeout 65;
>
> server {
> listen 127.0.0.1:8049;
>
> location / {
> rewrite (.*)/favicon.(ico|png) /favicon.$2 last;
> root /home/myuser;
> }
> }
> }
>
>
> Если (.*) заменить на (.+), то работает, а так:
>
> 2010/07/29 15:01:37 [error] 3547#0: *24 rewrite or internal redirection
> cycle while processing "/favicon.ico", client: 127.0.0.1, server:
> host.ru, request: "GET /favicon.ico HTTP/1.0", host: "127.0.0.1:8049"
>
>
> как лечить иначе?
Потому что "/favicon.ico" попадает под "(.*)/favicon.(ico|png)".
root /home/myuser;
location = /favicon.ico { }
location = /favicon.png { }
А лучше перестать думать в стиле rewrite'ов:
location ~ /favicon.(ico|png)$ {
alias /home/myuser/favicon.$1;
}
--
Игорь Сысоев
http://sysoev.ru
Подробная информация о списке рассылки nginx-ru