LINUX.ORG.RU
ФорумAdmin

location nginx

 ,


1

1

Не могу че-то разобраться с location, чтобы все работало правильно. Исходные данные:ubuntu 20.04, nginx 1.18, php 7.4, сайт на joomla 3.6-3.8. В общем проблема в не работающих(у меня) директивах location в серверных конфигах вот мой конфиг

server {
  listen 80;
  listen [::]:80;
  server_name mysite www.mysite;
  root /var/www/html/mysite;
  index index.php index.html index.htm index.nginx-debian.html;

  location / {
 # try_files $uri $uri/ /index.php;
    try_files $uri $uri/ /index.php?$args;
  }

  location ~* \.php$ {
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
  }

  location ~* /\. {
      deny all;
  }

  location = /robots.txt {
    allow all;
    }

 # deny running scripts inside writable directories
  location ^~ /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ {
     return 403;
     }

 # caching of files 
   location ~* \.(ico|pdf|flv)$ {
      expires 1m;
        }

   location ~* \.(js|css|png|jpg|jpeg|gif|swf|xml|txt)$ {
      expires 14d;
        }

 # add global x-content-type-options header
     add_header X-Content-Type-Options nosniff;

  location = /configuration.php {
      deny all;
  }

  location ^~ /(components|includes|administrator/includes|language|libraries|modules|plugins|templates|cli)/.*\.(php|ini|xml)$ {
     deny all;
     }

}

По документации последний в конфиге location должен переопределять в указанных директориях файлы php на параметры этого location. Но почему-то не переопределяет. Работает последний location, если отключаю вот этот

location ~* \.php$ {
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
По ходу этот тоже не работает
# deny running scripts inside writable directories
  location ^~ /(images|cache|media|logs|tmp)/.*\.(php|pl|py|jsp|asp|sh|cgi)$ {
     return 403;
     }
В общем вопрос такой:как заставить все это работать, те запрет скриптов в images|cache|media|logs|tmp и запрет прямого доступа к ядру joomla components|includes|administrator/includes|language|libraries|modules|plugins|templates|cli

короче разобрался. вместо ^~ таких модификаторов лучше использовать ~* и расставить location в конфиге в нужном порядке.

mio_linux ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.