A variável Nginx $ uri é truncada durante o processamento

2

Temos o NGinX como servidor proxy para o aplicativo da Web PHP. Scripts PHP são servidos pelo processo PHP-FPM. A seguir está a configuração para o nginx:

location /app/ {
    alias /var/www/html;

    location ~* \.(js|css|png|jpg|jpeg|gif|ico|eot|svg|ttf|woff)$ {
        alias /var/www/html;
        expires 24h;
        log_not_found on;
        try_files $uri $uri;
    }
    rewrite /app.* /app/index.php?$args;

    location ~ \.php$ {
        try_files $uri =404;

        # typical php-fpm configuration
    }
}
# wordpress site hosted on root of the domain
location / {
    try_files $uri $uri/ /index.php?$args;
}

location ~* \.(js|css|png|jpg|jpeg|gif|ico|eot|svg|ttf|woff)$ {
    expires 24h;
    log_not_found off;
    auth_basic off;
}

A aplicação PHP em si é baseada em Yii. Agora, o problema é que, quando o NGinx está exibindo uma imagem estática, ele está truncando o caminho real aleatoriamente (às vezes após 80 caracteres ou às vezes após 4 traços no URL). por exemplo,

Digamos que o URL acessado seja example.com/app/themes/app/images/some_folder/some_image_name.png , ele esteja mostrando 404 e em error.log Estou vendo que o NGinx está tentando localizar o seguinte caminho /var/www/html/app/themes/app/images/some_folder/**some_image_name.pn/** ( g foi removido do URL) enquanto outra imagem, cujo nome de arquivo é menor do que o culpado, na mesma localização está sendo localizada com sucesso.

EDIT: Nós notamos um padrão, na verdade o nginx está anexando o $ uri novamente após o original $ uri ie no exemplo acima mencionado ele substitui 'g' por '/' que é o caractere inicial do $ uri e em outro caso substitui '.png' por '/ var'. Espero que ajude na depuração. :)

    
por vikas 29.01.2014 / 07:50

1 resposta

0

A alteração de alias para root para o caminho do diretório resolveria seu problema.

location ~* \.(js|css|png|jpg|jpeg|gif|ico|eot|svg|ttf|woff)$ {
    root /var/www/html;
    expires 24h;
    log_not_found on;
    try_files $uri $uri;
}
    
por 30.01.2014 / 08:36