Не скрою, мне не удалось установить osTicket из-под nginx (ставить пришлось на домашнем ноутбуке, пользуясь OpenServer), но затем вполне получилось клонировать сайт, после чего он был развёрнут на реальном хостинге, работающем под nginx и php-fpm.
Рассмотрим сразу конфигурационные файлы.
Настройка виртуального сервера для nginx
upstream backend-helpdesk {server unix:/var/run/fpm-helpdesk.sock;}
#user apache;
#worker_processes 1;
#events { worker_connections 1024; }
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
charset utf-8;
gzip on;
gzip_types text/plain application/xml text/javascript;
gzip_min_length 1000;
index index.php index.html index.htm;
# Перенаправим все запросы HTTP на HTTPS
server {
listen 80;
server_name helpdesk.drach.pro;
rewrite ^ https://helpdesk.drach.pro permanent;
}
server {
listen 443;
server_name helpdesk.drach.pro;
ssl on;
ssl_certificate /etc/nginx/certs/cert.pem;
ssl_certificate_key /etc/nginx/certs/cert.key;
keepalive_timeout 70;
root /var/www/html/helpdesk.drach.pro;
set $path_info "";
location ~ /include {
deny all;
return 403;
}
if ($request_uri ~ "^/api(/[^\?]+)") {
set $path_info $1;
}
location ~ ^/api/(?:tickets|tasks).*$ {
try_files $uri $uri/ /api/http.php?$query_string;
}
if ($request_uri ~ "^/scp/.*\.php(/[^\?]+)") {
set $path_info $1;
}
location ~ ^/scp/ajax.php/.*$ {
try_files $uri $uri/ /scp/ajax.php?$query_string;
}
location / {
try_files $uri $uri/ index.php;
}
location ~ \.php$ {
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_param PATH_INFO $path_info;
fastcgi_pass backend-helpdesk;
}
}
}
А вот конфигурация php-fpm
[helpdesk.drach.pro] listen = /var/run/fpm-helpdesk.sock listen.allowed_clients = 127.0.0.1 listen.owner = apache listen.group = apache user = apache group = apache # как будут создаваться новые рабочие процессы pm = dynamic # максимальное количество рабочих процессов pm.max_children = 6 # число запущенных процессов при старте сервера pm.start_servers = 2 # минимальное и максимальное количество процессов в простое pm.min_spare_servers = 2 pm.max_spare_servers = 4 # сколько запросов может обработать один процесс? pm.max_requests = 9000 slowlog = /var/log/php-fpm/helpdesk-slow.log php_admin_value[error_log] = /var/log/php-fpm/helpdesk-error.log php_admin_flag[log_errors] = on php_value[session.save_handler] = files php_value[session.save_path] = /var/lib/php/session
В этом примере мы намекаем на использование SSL. Уверен, у читателя это не вызывает недоумения.
Если вдруг AJAX откажется работать при такой конфигурации, можно добавить всего одну строку в секцию соответствующую location.

Дискуссия
Написал Ввёл своё Имя
Опубликовано в: Расширяем раздел ext4 на сервере с Rocky Linux in LinuxНаписал Владимир
Опубликовано в: Установка nginx c PHP-FPM под CentOS 7.0 in LinuxНаписал Rocky 9
Опубликовано в: Установка nginx c PHP-FPM под CentOS 7.0 in LinuxНаписал Константин
Опубликовано в: Докеризация стека LEMP под Ubuntu c помощью Compose in LinuxНаписал bammbr
Опубликовано в: Шлюз для маленького отдела на Red Hat 9 in Linux