502 Bad Gateway Error для сайта Laravel, работающего на nginx

Большая часть моей страницы работает, но когда я пытаюсь получить доступ к части своего сайта, я получаю ошибку 502 Bad Gateway.

Я использую последнюю версию Laravel, nginx и php5-fpm. Мой сервер — это экземпляр AWS Ubuntu 14.04.

Я проверяю журнал nginx и получаю следующую ошибку

2016/07/01 19:06:29 [error] 1101#0: *8 recv() failed (104: Connection reset     by peer) while reading response header from upstream, client: [client IP here], server: [aws server IP here], request: "GET /get/request/here/build?active=talent HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "[server IP here]", referrer: "http://[server IP here]/admin?all=yes"

Вот мой файл fpm/pool.d/www.conf (все, что не закодировано более-менее)

; Pool name
[www]

listen.owner = www-data
listen.group = www-data
;listen.mode = 0660

pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
;pm.process_idle_timeout = 10s;
; pm.max_requests = 500

chdir = /
catch_workers_output = yes

Вот мой файл nginx/sites-available/default:

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /var/www/laravelproject/public;
    index index.php index.html index.htm;

    server_name [server-ip-here];

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        try_files $uri /index.php =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Как я могу это исправить?


person ruby_noobie    schedule 01.07.2016    source источник
comment
Что происходит, когда вы запускаете службу перезапуска nginx? Также посмотрите /var/log/nginx/error.log   -  person dmitryro    schedule 01.07.2016
comment
Он перезагружается чисто, а ошибка вверху из журнала ошибок nginx.   -  person ruby_noobie    schedule 01.07.2016


Ответы (2)


Проверьте, где находятся ваши места fastcgi_params

location ~ \.php$ {
    set $php_root /var/www/laravelproject/public;
    fastcgi_pass unix:/var/run/php5-fpm.sock; // switch back when verified 
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME  $php_root$fastcgi_script_name;
    include /etc/nginx/fastcgi_params; // adjust to your absolute path
}
person dmitryro    schedule 01.07.2016
comment
Поэтому, когда я переключился на порт, он вообще не работал, получил плохой шлюз со страницы, которая работала раньше. - person ruby_noobie; 01.07.2016
comment
Похоже, ему нужны ваши fastcgi_params - для установки в существующем местоположении, теперь вы можете проверить журнал и посмотреть. - person dmitryro; 01.07.2016
comment
Также попробуйте закомментировать строку listen [::]:80 default_server ipv6only=on; и убедитесь, что только один сервер использует порт 80 — вы можете увидеть с помощью ps -ef или ps aux, что происходит с процессами - person dmitryro; 01.07.2016
comment
Вот новое сообщение об ошибке 2016/07/01 19:55:29 [error] 1672#0: *10 FastCGI sent in stderr: "PHP message: PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 1024 bytes) in /var/www/laravelproject/vendor/laravel/framework/src/Illuminate/Database/Connection.php on line 303" while reading response header from upstream, client: [client-ip-here], server: [server-ip], request$ - person ruby_noobie; 01.07.2016
comment
Закомментировал вторую строку сервера и все равно не повезло. Спасибо за предложения. - person ruby_noobie; 01.07.2016
comment
Итак, теперь мы можем изменить php.ini и установить ini_set('memory_limit', '-1') - person dmitryro; 01.07.2016
comment
это либо /etc/php/5.6/apache2/php.ini, либо /etc/php/5.6/cli/php.ini — просто запустите find / -name php.ini - person dmitryro; 01.07.2016
comment
Я надеялся на этот вариант, но он тоже не пошел. Все еще получаю ошибку шлюза. На всякий случай оставим этот memory_limit равным -1. - person ruby_noobie; 01.07.2016
comment
serversforhackers.com/video/ — это может дать больше в поле зрения. - person dmitryro; 01.07.2016
comment
попробуй включить своп. У меня были такие проблемы с маленькой каплей на digitalocean. ограничение памяти не помогло, потому что на самом деле у сервера не было свободной памяти, поэтому включил своп, чтобы некоторые ненужные блоки памяти можно было выгрузить из оперативной памяти. - person num8er; 02.07.2016

Я не вижу проблемы в конфигурации nginx.

Но насчет www.conf я вижу, что вы определили прослушиватель, но не определили сокет прослушивателя.

Итак, попробуйте следующее:

[www]

user = www-data
group = www-data

listen = /var/run/php5-fpm.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0666

pm = ondemand
pm.max_children = 4
pm.process_idle_timeout = 10s
pm.max_requests = 32
chdir = /

php_admin_flag[display_errors] = on
php_admin_flag[log_errors] = off
php_admin_value[memory_limit] = 512M
php_admin_value[post_max_size] = 128M
php_admin_value[upload_max_filesize] = 128M
person num8er    schedule 01.07.2016