- 172.25.48.14 — экземпляр Nginx в общедоступной подсети (172.25.48.0/28), имеет Назначен эластичный IP-адрес
- 172.25.48.140 — экземпляр, использующий php-fpm в частной подсети (172.25.48.128/28)
Код: Выделить всё
http {
sendfile on;
tcp_nopush on;
types_hash_max_size 2048;
server_names_hash_bucket_size 128;
include /etc/nginx/mime.types;
default_type text/html;
proxy_headers_hash_bucket_size;
access_log /var/log/nginx/access.log
error_log /var/log/nginx/error.log
server {
listen 80;
location ~ ^/site1(.*)$ {
# These are commented out because no matter if specified or not the result is the same
# index index.php;
# try_files $uri $uri/ /site1/index.php?$request_uri;
location ~ \.php$ {
include fastcgi.conf;
try $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 172.25.48.140:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
}
}
Код: Выделить всё
[site1]
user = www-data
group = www-data
listen = 172.25.48.140:9000
listen.allowed_clients = 172.25.48.14, 172.25.48.140, 127.0.0.1
php_admin_value[disable_functions] = exec, passthru, shell_exec, system
php_admin_flag[allow_url_fopen] = off
pm = dynamic
pm.max_children = 10
pm.start_servers = 1
pm.min_spare_servers = 1
pm.max_spare_servers = 8
pm.process_idle_timeout = 30s
pm.status_path = /php_status
ping.path = /ping
ping.response = wrrrrrrrrryyyyyyyyyyy
access.log = /var/log/php/8.3/$pool.access.log
access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{milli}d %{kilo}M %C%%"
Проблема в том, что что бы я ни пытался, я получаю 404, и, судя по журналам на стороне частного экземпляра запрос не даже добраться туда - хотя я знаю, что у меня правильно настроены группы безопасности экземпляра и на правильных портах, потому что в противном случае я могу без проблем подключиться из частного экземпляра к общедоступному и наоборот. Единственный раз, когда я получил запрос на php-fpm (хотя и 404), это когда я переместил самый глубокий поиск «местоположения» (тот, который соответствует сценариям .php) на верхний уровень сервера - так в основном запрос направлялся прямо на 172.25.48.14, а не на 172.25.48.14/site1, как я предполагал.
Я что-то упустил? Может ли проблема заключаться в том, что исходные файлы расположены в том же экземпляре, что и php-fpm, а не на стороне Nginx? Я неправильно понимаю, как это работает? Пожалуйста, если у вас есть идеи по этому поводу, я буду чрезвычайно благодарен за вашу помощь. Заранее спасибо!
Подробнее здесь: https://stackoverflow.com/questions/791 ... th-fastcgi
Мобильная версия