Exibindo uma imagem padrão com nginx

1

Eu tenho a seguinte configuração no nginx:

  location /static/ {
       root /srv/kose/;
       expires 2w;
       access_log off;
 }


 location / {
    proxy_pass http://127.0.0.1:8089;

}

Se um arquivo não for encontrado em / static /, eu quero servir uma imagem padrão, e não proxy_pass para 8089. Atualmente, ele procura pelo arquivo na raiz para static, se não consegue encontrá-lo, ele tenta o proxy.

Eu tentei o seguinte, mas não funciona. Como posso dizer ao nginx para exibir a imagem padrão? Eu também tentei try_files sem sucesso.

  location /static/ {
       root /srv/kose/;
       expires 2w;
       access_log off;
       error_page 404 /srv/static/defaultimage.jpg;
 }


 location / {
    proxy_pass http://127.0.0.1:8089;

}

    
por ustun 03.06.2012 / 16:33

2 respostas

3

Os seguintes trabalhos:

 location /static/ {
       root /srv/kose/;
       expires 2w;
       access_log off;
       try_files $uri /static/img/yazar/authornoimage.jpg;

 }

Note que em vez do local do arquivo, eu tive que escrever a URL da imagem padrão para try_files.

    
por 03.06.2012 / 16:42
1
location /static/ {
    root /srv/kose;
    expires 2w;
    access_log off;
    error_page =200 /defaultimage.jpg;
}

location = /defaultimage.jpg {
    internal;
    root /srv/static;
    expires 2w;
    access_log off;
}

ou

location /static/ {
    root /srv;
    expires 2w;
    access_log off;
    try_files /kose$uri /static/defaultimage.jpg =404;
}
    
por 03.06.2012 / 19:18

Tags