Назад | Перейти на главную страницу

Обновление Nginx до 1.8 - теперь 502 плохих шлюза

Сегодня я обновил свой сервер localhost с nginx 1.6.3 до 1.8.0, и теперь все мои локальные веб-сайты получают 502 Неверный шлюз.

Стандартный файл конфигурации nginx выглядит следующим образом

server {
    charset utf-8;
    client_max_body_size 128M;

    listen 80; ## listen for ipv4

    server_name  yii2.dive;
    root        /media/Development/www/yii2/web;
    index       index.php;

    access_log  /media/Development/www/yii2/log/access.log combined;
    error_log   /media/Development/www/yii2/log/error.log warn;

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

    location ~ \.php$ {
        include fastcgi.conf;
        #fastcgi_pass   127.0.0.1:9000;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        include fastcgi_params;
        try_files $uri =404;
    }

    location ~ /\.(ht|svn|git) {
        deny all;
    }
}

Сообщение об ошибке, которое я получаю, выглядит следующим образом

2015/05/12 14:09:21 [error] 9295#0: *1 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 127.0.0.1, server: yii2.dive, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "yii2.dive"

Сокет в /var/run/php5-fpm.sock существует, поэтому там нет никаких проблем.

я нашел кто-то еще с проблемой при том же обновлении но их проблема отличается от моей и не возникает никаких ошибок.

Я пробовал добавить эту строку в / и т.д. / nginx / fastcgi_params но это не решает проблемы.

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

В качестве альтернативы, есть способ вернуться к версии 1.6.2 или 1.6.3, и я смогу заняться этим обновлением позже. Я пробовал бежать

sudo apt-get install nginx=1.6.2-1+trusty0

Но появилась следующая ошибка

The following packages have unmet dependencies:
 nginx : Depends: nginx-full (< 1.6.2-1+trusty0.1~) but 1.8.0-1+trusty1 is to be installed or
                  nginx-light (< 1.6.2-1+trusty0.1~) but it is not going to be installed or
                  nginx-extras (< 1.6.2-1+trusty0.1~) but it is not going to be installed or
                  nginx-naxsi (< 1.6.2-1+trusty0.1~) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Удалите все пакеты nginx с помощью:

aptitude purge nginx nginx-full

Затем добавьте официальные репозитории deb для nginx:

deb http://nginx.org/packages/debian/ codename nginx
deb-src http://nginx.org/packages/debian/ codename nginx

wget http://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key

Наконец, установите nginx:

apt-get update
apt-get install nginx

https://nginx.org/en/linux_packages.html

Теперь он должен работать. Если нет - см. /var/log/nginx/error.log и исправить ошибки.

Это работает для меня

заменить

include fastcgi_params;
fastcgi_pass unix:/var/run/php5-fpm.sock;

с участием

include fastcgi.conf;
fastcgi_pass 127.0.0.1:9000;