Ошибка 502 Bad Gateway При Инсталяции (Ubuntu 16.04 + Nginx1.10 + Php7.0)

Привет сообщество!

На новом VPS (Ubuntu 16.04 + Nginx1.10 + PHP7.0-FPM + MySQL) распаковываю дистрибутив в директорию /var/www/html/my_domen.ru, даю права на файлы, в браузере вижу: "502 Bad Gateway ". До распаковки архива, по адресу, видна заглушка Nginx, если подставить произвольный Index.html, тоже видна страница. При этом поддомен для phpmyadmin - pma.my_domen.ru работает без проблем. Настройка VPS осуществлялась по инструкции http://www.cs-cart.ru/docs/4.3.x/install/vps/nginx/с поправкой на уже более новые релизы ПО.

Как победить 502 Bad Gateway?

В логе /var/log/nginx/error.log следующее:

2016/10/09 13:02:10 [crit] 11939#11939: *34 connect() to unix:/run/php7.0-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: 31.173.85.56, server: my_domen.ru, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/run/php7.0-fpm.sock:", host: "my_domen.ru"
2016/10/09 13:03:07 [emerg] 12378#12378: "server" directive is not allowed here in /etc/nginx/sites-enabled/default:38 

Файл конфигурации /etc/nginx/sites-available/default

################################################################################
#   Виртуальный хост по умолчанию, предназначен для работы по IP адресу или домену без собственной конфигурации
################################################################################
server {
    listen  80;
    server_name _;
    root /var/www/empty;
# Редирект на нужный магазин по умолчанию
location / {
    return 301 $scheme://my_domen.ru$request_uri;
}

}

################################################################################

Описание и конфигурация основного домена для интернет-магазина

################################################################################

server {
listen 80;
# Домен интернет-магазина
server_name my_domen.ru www.my_domen.ru;

#   Кодировка по-умолчанию
charset utf-8;

#   Расположение логов
access_log  /var/log/nginx/access.log combined;
error_log   /var/log/nginx/error.log;

#   Основной каталог интернет-магазина
root /var/www/html/my_domen.ru;

#   Сжатие
gzip on;
gzip_disable "msie6";
gzip_comp_level 6;
gzip_min_length  1100;
gzip_buffers 16 8k;
gzip_proxied any;
gzip_types text/plain application/xml
  application/javascript
  text/css
  text/js
  text/xml
  application/x-javascript
  text/javascript
  application/json
  application/xml+rss;

#   Прочие настройки
client_max_body_size            100m;
client_body_buffer_size         128k;
client_header_timeout           3m;
client_body_timeout             3m;
send_timeout                    3m;
client_header_buffer_size       1k;
large_client_header_buffers     4 16k;

#   Точка входа в интернет-магазин
location / {
    #   Папка с файлами интернет-магазина
    root /var/www/html/my_domen.ru;

    #   Главный скрипт
    index  index.php index.html index.htm;

    #   Для  работы API
    rewrite ^/api/(.*)$ /api.php?_d=$1&ajax_custom=1&$args last;

    #   Логика поиска скрипта по порядку: файл, папка, скрипт
    try_files $uri $uri/ @fallback;
}

#   Правиле rewrite для модуля SEO
location @fallback {
    rewrite  ^(.*)$ /index.php?$args last;
}

#   Настройки статики, первое правило
location ~* \.(jpeg|ico|jpg|gif|png|css|js|pdf|txt|tar|gz|wof|csv|zip|xml|yml|woff|ttf) {
    access_log off;
#   Правило поиска статических файлов. Если файл не находится по адресу магазина, то ищем файл по правилу @statics.
#   Например если магазин расположен в подпапке my_domen.ru/shop/
    try_files $uri @statics;
    expires 14d;
    add_header Access-Control-Allow-Origin *;
    add_header Cache-Control public;
    root /var/www/html/my_domen.ru;
}

#   Правило поиска статических файлов для витрин. Например, если у Вас две витрины в разных подпапках: my_domen.ru и my_domen.ru/shop/
location @statics {
    rewrite ^/(\w+)/(.*)$ /$2 break;
    access_log off;
    rewrite_log off;
    expires 14d;
    add_header Cache-Control public;
    add_header Access-Control-Allow-Origin *;
    root /var/www/html/my_domen.ru;
}

#   Обрабатываем PHP скрипты. Магия
location ~ \.php$ {
    root /var/www/html/my_domen.ru;
    proxy_read_timeout 61;
    fastcgi_read_timeout 61;
    try_files $uri $uri/ =404;
    #   Путь до сокета демона PHP-FPM
#   fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_pass unix:/run/php7.0-fpm.sock;

    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

Ограничиваем возвожность запуска php в каталогах. Для безопасности.

location /app/ {
        deny all;

        #   Разрешаем запуск скрипта обмена данными с 1С.
        location ^~ /app/addons/rus_exim_1c/exim_1c.php {
            allow all;
        }
}

#   Разрешаем запуск скриптов способов оплаты
location /app/payments/ {
        allow all;
}

#   Запрещаем PHP в папке /design
location /design/ {
allow all;
        location ~* \.([tT][pP][lL]|[pP][hH][pP].?)$ {
        deny all;
        }
}

#   Запрещаем PHP в папке /images
location /images/ {
    allow all;
    location ~* \.([pP][hH][pP].?)$ {
        deny all;
    }
}

#   Разрешаем только статику в папке /var
location /var/ {
    deny all;
    location ~* \.(js|css|png|jpg|gz|xml|yml)$ {
        allow all;
        expires 1M;
        add_header Cache-Control public;
        add_header Access-Control-Allow-Origin *;
    }
}

#   Закрываем доступ к бэкапам базы данных интернет-магазина (папка /var/database/) с наружи
location /var/database/ {
    deny all;
}

#   Хранилище резервных копий шаблонов
location /var/skins_repository/ {
    allow all;
    location ~* \.([tT][pP][lL]|[pP][hH][pP].?)$ {
        deny all;
    }
}

#   Обработка API
location ~* api/ {
    rewrite ^/api/(.*)$ /api.php?_d=$1&ajax_custom=1&$args last;
}

#   Запрвещаем .htaccess и .htpasswd
location ~ /\.ht {
    deny  all;
}

}

################################################################################

pma.my_domen.ru

################################################################################

server {
listen 80;

#   Поддомен для phpmyadmin
server_name pma.my_domen.ru www.pma.my_domen.ru;
# root /run/php/;

charset utf-8;

#   Расположение логов
access_log  /var/log/nginx/pma.my_domen.ru_access.log combined;
error_log   /var/log/nginx/pma.my_domen.ru_error.log;

#   Путь по которому будет ссылаться поддомен
root /usr/share/phpmyadmin;
index index.php index.html index.htm;

location / {
    try_files $uri $uri/ =404;
}

location ~ \.php$ {
    root /usr/share/phpmyadmin;
    proxy_read_timeout 61;
    fastcgi_read_timeout 61;
    try_files $uri $uri/ =404;

#   Задаёт адрес FastCGI-сервера. Адрес указан в виде порта 
#   fastcgi_pass unix:/var/run/php7.0-fpm.sock;
	fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    
#   Подстановка имени файла после слеша в адресной строке/
    fastcgi_index index.php; 

    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

}

Проверить: есть ли сокет /run/php7.0-fpm.sock и доступен ли он для чтения и записи Nginx.

Есть решение!

Сам спрашивал, сам же и отвечаю)

Для версии PHP7 путь к сокету прописывается иначе чем было в PHP5.x

переходим к файлу конфигурации /etc/nginx/sites-available/default

ищем строку с параметром fastcgi_pass unix: (из поста выше это строка №111)

# fastcgi_pass unix:/var/run/php5-fpm.sock; так было для версий php5.х
# fastcgi_pass unix:/run/php7.0-fpm.sock; этот путь приводит к "502 Bad Gateway"
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; #так правильно для php7
После этого все заработало! На PHP7 где уже предустановлен Zend OPcache, сайт работает очень шустро!
Чуть позже выложу всю инструкцию по установке на чистый VPS в конфигурации с последними релизами: Ubuntu 16.04LTS + Nginx1.10 + PHP7.0-FPM + MySQL

Глеб, да все верно, проблема была именно там. Спасибо!