У меня есть этот базовый c conf файл:
server {
root /usr/share/nginx/html/default/public;
location / {
try_files $uri /index.php$is_args$args;
}
location ~ ^/index\.php(/|$) {
fastcgi_pass my-php:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
internal;
fastcgi_param SERVER_PORT $server_port;
}
location ~ \.php$ {
return 404;
}
location ~ /\.ht {
deny all;
}
}
, расположенный в Nginx docker объекте: /etc/nginx/conf.d/default.conf
это хорошо работает, если я запрашиваю веб-сайт
127.0.0.1: 8080
, но не работает с 404, если я хочу получить доступ из браузера к файлу: 127.0.0.1:8080/check.php
, даже если файл существует в publi c dir, и если я переименую его в index.php
, он загружается без каких-либо проблем, запрашивая 127.0.0.1:8080
, но что нужно изменить в nginx conf, чтобы Файл check.php
будет доступен для 127.0.0.1:8080/check.php
?
Проблема 2: Я могу запросить 127.0.0.1:8080
с 200 OK и BODY, как и ожидалось, но я получу:
http://127.0.0.1:8080/index.php 404 Not Found
http://127.0.0.1:8080/check.php 404 Not Found
и если я поверну от этого блока:
location / {
try_files $uri /index.php$is_args$args;
}
я получаю access.log "GET / HTTP/1.1" 403
и запрос-ответ
http://127.0.0.1:8080/ 403 Forbidden
, но это соответствие работает:
location ~ ^/index\.php(/|$) { ... }
для php, потому что если я сделаю fastcgi_pass недействительным
fastcgi_pass wrong-containername:9000;
, я получу ошибки вместо 200 OK.
1.Как сделать шаблон для местоположения php -fpm, который будет работать с
http(s)://127.0.0.1:8080/
http(s)://127.0.0.1:8080/index.php
http(s)://127.0.0.1:8080/check.php
2. И дополнительным, который обрабатывает все другие запросы с php -fpm к dirs где может быть индекс. php или проверка. php или что-то еще. php
http(s)://127.0.0.1:8080/*