Tem certeza de que é o nginx, e não o PHP, que está adicionando o Content-type: text/html
? Não parece assim da sua configuração colada. Pode ser que você tenha outro código PHP que está definindo o primeiro. Tente mudar sua chamada de cabeçalho do PHP para ficar assim:
header('Content-Type: image/jpeg', true);
O segundo argumento substitui quaisquer outras chamadas anteriores para esse cabeçalho específico.
Você também pode querer ver alguns $upstream_http_content_type
, que é uma variável nginx que contém o Content-type
do cabeçalho que o PHP emitiu. Se você precisar de um hack feio em torno disso, você pode usá-lo com uma declaração if
em sua configuração nginx.