Распространенные ошибки 502
1. Ошибка конфигурации
Поскольку Nginx PHP-FPM не найден, так что ошибка, как правило, расположена позади fastcgi_pass неправильного пути, он может следовать сокет или IP: порт;
2. Истощение ресурсов
lnmp архитектура при работе с PHP, Nginx прямого извлечения фоновых услуг PHP-FPM, если запрошенный объемом Nginx максимума, мы не имеем достаточно конфигурацию PHP-футов в минуте ребенка, то PHP-FPM ресурсы будут исчерпаны раз истощения ресурсов Nginx PHP-FPM не найти 502 ошибок;
Решение:
для регулировки значения pm.max_children PHP-fpm.conf в, увеличивается, но не может расти до бесконечности, в конце концов, ограниченные ресурсы, вообще машина памяти 4G , если работает PHP-FPM и Nginx, не запускать MySQL может быть установлен на 150 , 8G 300 и так далее;
3. Другие причины
Кроме того, существуют и другие причины для двух указанных выше ошибок, редко, мы можем помочь устранение неисправностей в журнале ошибок Nginx:
cat /usr/local/nginx/logs/nginx_error.log
Мы также можем определить уровень в журнал: ВИМ / USR / местные / Nginx / CONF / nginx.conf найти error_log, по умолчанию является самым строгим крит на линии, вы можете также изменить отображение наиболее полную информацию отладки, но это легко взорвать наш диск.
Файл конфигурации 3.1 Modify Nginx
Во-первых, нам нужно разрешить доступ через браузер
vim/usr/local/nginx/conf/vhosts/111.conf
server
{
listen 80;
server_name www.111.com; // 域名地址
index index.html index.htm index.php;
root /data/www/;
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/tmp/www.sock; // 修改sock
#fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /data/www$fastcgi_script_name;
}
}
3.2 Проверка грамматики нормально
/usr/local/nginx/sbin/nginx -t
3.3 загрузить файл конфигурации
/usr/local/nginx/sbin/nginx-s reload
/etc/init.d/nginx reload
3.4 Проверка, какой пользователь работает Nginx
ps aux |grep nginx
3,5 редактировать файл PHP-FPM
Мы хотим, чтобы установить домашний Nginx PHP-FPM пользователя в этом документе, с группой так, чтобы не отображать 502
vim/usr/local/php/etc/php-fpm.conf
[global]
pid = /usr/local/php/var/run/php-fpm.pid
error_log =/usr/local/php/var/log/php-fpm.log
[www]
listen = /tmp/www.sock
user = php-fpm
group = php-fpm
listen.owner = nobody //定义属主
listen.group = nobody //定义属组
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024
3,6 рестарт PHP-FPM
/etc/init.d/php-fpm restart
Добавлено: Последние проблемы , с которыми сталкиваются многие студенты
в этом случае, используя сокет, выше , чем версия 5.4 (включая 5.4) права доступа к файлам по умолчанию слушающий сокет является владельцем только для чтения, а другая группа пользователей , без какого - либо разрешения. Таким образом, Nginx запуск клиента (наша конфигурация никого нет) нет никакого способа , чтобы прочитать файл сокета, в результате чего 502, эта проблема может быть найдена в журнале ошибок Nginx. Решение является простым, учитывая профиль вышеуказанной конфигурации должен будет избежать этой проблемы.
listen.owner = nobody //定义属主
listen.group = nobody //定义属组
Эти две конфигураций определение того, кто экипировка владельца и группы Да. В дополнение к этому есть способ
listen.mode = 666
Так что никто не может иметь разрешение на чтение.