Welcome! Log In Create A New Profile


Re: location ~* \.(...) access_log off; prevents access to files instead of logs

Maxim Dounin
November 14, 2023 10:54AM

On Tue, Nov 14, 2023 at 02:51:05PM +0100, Roberto D. Maggi wrote:

> Hi you all,
> I'm having a problem with these two stanzas, in writing down a virtual
> host and can't figure out what's wrong with them.
> They look correct but the first doesn't simply work and the second blocks
> --> here I'm trying to add this header only to cgi|shtml|phtml|php
> extensions
> location ~* \.(?:cgi|shtml|phtml|php)$ {
>       add_header Cache-Control "public";
>       client_max_body_size 0;
>       chunked_transfer_encoding on;
>       }
> --> here I don't want to log accesses to to
> woff|woff2|ico|pdf|flv|jpg|jpeg|png|gif|js|css|gz|swf|txt files
> location ~*
> \.(?:woff|woff2|ico|pdf|flv|jpg|jpeg|png|gif|js|css|gz|swf|txt)$ {
>       access_log off;
>       }
> Does anybody can guess what's wrong with them?
> Thanks in advance.

When processing a particular request, nginx selects a
location and handles a request according to the configuration in
this location, see http://nginx.org/r/location.

As such, the first location, which tries to alter processing of
php files, does not seem to be correct: in particular, it lacks
any fastcgi_pass / proxy_pass directives, and hence such files
will be simply returned to the client as static files. While it
might be what you indeed tried to setup, the "doesn't simply work"
suggests it isn't. You may want to re-consider your configuration
to ensure that requests to php files are properly proxied to
appropriate backend servers.

The second location, which disables logging to some static files,
looks correct, but it might have the same problem: as long as
requests are handled in this location, some essential handling
which was previously present might be missing, and this breaks
things. For example, a common error is to write something like

location / {
root /path/to/site;

location ~ \.css$ {
# no root here

Note that the root path is configured in "location /", but not in
"location ~ \.css$", hence all css files will use some default
root path (or the one inherited from previous configuration
levels), which is likely incorrect. An obvious fix would be to
configure root at the server level instead, so it will be used for
both locations.

Just in case, looking into error log usually makes such issues
trivial to identify - nginx will complain if it cannot find a file
requested, and will show full path it tried to use.

Hope this helps.

Maxim Dounin
nginx mailing list
Subject Author Posted

location ~* \.(...) access_log off; prevents access to files instead of logs

Roberto D. Maggi November 14, 2023 08:52AM

Re: location ~* \.(...) access_log off; prevents access to files instead of logs

Maxim Dounin November 14, 2023 10:54AM

Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 191
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready