Hello, I’m hitting my head against a wall since a couple days ago. Last
paragraph has the big question, the rest is context.
I run a fairly big Wordpress blog, with a somewhat convoluted
configuration
rewriting legacy URLs that follow me since 2002. I use extensive caching
via
plugins that pregenerate HTML on disk and I rewrite requests to serve
HTML
instead of talking to PHP. Everything worked well until a domain change.
Yesterday after I replaced the domain in the various configuration
files,
nginx started sending every request to the PHP processor. The location /
is
pretty standard:
location / {
try_files cache_path$uri $uri $uri/ /index.php;
}
Everything in the paths exists and has the correct permissions, but
nginx
keeps sending everything through /index.php and killing my server via a
180-200 load average.
I tried everything googleable, but I can’t detect WHY nginx goes that
route.
The debug log shows a lot of not matching rules/regexes but there’s
nothing
I can do to follow the decision tree that nginx follows to end in PHP.
Is
there anything I can do to at least simulate the directive processing?
On Fri, Nov 07, 2014 at 09:17:18PM -0500, cachito wrote:
Hi there,
Yesterday after I replaced the domain in the various configuration files,
nginx started sending every request to the PHP processor. The location / is
pretty standard:
location / {
try_files cache_path$uri $uri $uri/ /index.php;
}
If you restore the previous configuration, does the problem go away
again?
Was the only change in the server_name directive?
I tried everything googleable, but I can’t detect WHY nginx goes that route.
The debug log shows a lot of not matching rules/regexes but there’s nothing
I can do to follow the decision tree that nginx follows to end in PHP. Is
there anything I can do to at least simulate the directive processing?
Does the debug log show lines like "test location: " followed by "using
"?
Does that hint at which location{} is used and what happens next?
If you can recreate the problem on a test system, then you can probably
more easily analyse the debug log for a single request at a time.