Освоение Nginx и PHP: руководство для начинающих по Pid-сокетам

Если вы погружаетесь в мир веб-разработки, скорее всего, вы встретите популярный веб-сервер Nginx и язык сценариев PHP. Одним из важных аспектов настройки Nginx и PHP является управление pid-сокетом. В этой статье мы познакомим вас с различными методами работы с pid-сокетами, используя разговорный язык и примеры кода, чтобы новичкам было легче их понять.

Метод 1: базовая конфигурация
Первый метод включает настройку Nginx для взаимодействия с PHP с использованием pid-сокета. В файл конфигурации Nginx добавьте следующие строки:

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

Здесь мы указываем расположение файла pid-сокета (в данном случае /var/run/php/php7.4-fpm.sock) и передаем его в Nginx.

Метод 2: использование сокетов TCP/IP
В качестве альтернативы вы можете настроить Nginx и PHP для связи через сокеты TCP/IP. В файле конфигурации Nginx измените директиву fastcgi_passследующим образом:

location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

В этом случае Nginx будет взаимодействовать с процессом PHP-FPM, запущенным на 127.0.0.1через порт 9000.

Метод 3: настройка местоположения Pid-сокета
Если вы предпочитаете настроить расположение pid-сокета, вы можете сделать это, изменив файл конфигурации PHP-FPM. Найдите директиву listenи обновите ее соответствующим образом:

listen = /run/php/php7.4-fpm.sock

Не забудьте перезапустить PHP-FPM и Nginx после внесения этих изменений.

Метод 4: использование активации сокетов Systemd
Активация сокетов Systemd — это мощная функция, которая позволяет запускать службы по требованию при обнаружении входящих соединений. Чтобы включить активацию сокета для PHP-FPM, создайте файл конфигурации сокета systemd, например, php-fpm.socket, со следующим содержимым:

[Socket]
ListenStream=/run/php/php7.4-fpm.sock
ListenStream=127.0.0.1:9000
[Install]
WantedBy=sockets.target

Затем создайте соответствующий служебный файл, например, php-fpm.service, и добавьте следующие строки:

[Service]
ExecStart=/usr/sbin/php-fpm7.4 --nodaemonize --fpm-config /etc/php/7.4/fpm/php-fpm.conf

Наконец, включите и запустите сокет и сервисные модули:

systemctl enable php-fpm.socket
systemctl start php-fpm.socket

Метод 5: использование доменных сокетов Unix
Доменные сокеты Unix обеспечивают более быстрый и безопасный способ взаимодействия между процессами на одном компьютере. Чтобы настроить Nginx для использования доменных сокетов Unix, измените директиву fastcgi_passследующим образом:

location ~ \.php$ {
    fastcgi_pass unix:/var/run/php-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

Здесь /var/run/php-fpm.sock— путь к файлу сокета домена Unix.

Управление pid-сокетами при настройке Nginx и PHP имеет решающее значение для бесперебойной связи между веб-сервером и языком сценариев. В этой статье мы рассмотрели различные методы, включая базовую настройку, сокеты TCP/IP, настройку расположения сокетов, использование активации сокетов systemd и сокеты домена Unix. Поняв эти методы, вы сможете эффективно работать с pid-сокетами и оптимизировать настройку веб-разработки.