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;
}
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. :)