Aqui está a configuração de localização que uso para executar o wordpress em um subdiretório "blog". more_clear_headers requer o módulo correto compilado no Nginx.
location / {
# If the file can't be found try adding a slash on the end - it might be
# a directory the client is looking for. Then try the Wordpress blog URL
# this might send a few requests to PHP that don't need to go that way
try_files $uri $uri/ /blog/index.php?$args;
more_clear_headers Server; more_clear_headers "Pragma"; more_clear_headers "Expires";
}
Esta parte é útil
# Add trailing slash to */wp-admin requests.
rewrite /blog/wp-admin$ $scheme://$host$uri/ permanent;
Isso não é necessário para a maioria, mas eu mudo vários cabeçalhos para páginas que não são de administração, então isso garante que os cabeçalhos padrão sejam passados.
# Wordpress admin caching headers are set correctly, for pages and resources. The only reason we define
# this block separately is to avoid messing with the headers in the main php block.
# This is probably unnecessary because of the skip_cache variable and may be removed
location ~* wp-admin {
fastcgi_keep_conn on;
fastcgi_pass php56-fpm;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
}
Eu tenho um Tutorial do Wordpress / Nginx você pode achar útil. Ele inclui arquivos de configuração que você pode baixar, embora eu não ache que eu realmente inclua esse padrão do Wordpress em um subdiretório - não tenho 100% de certeza.