Несколько сайтов magento, работающих под разными пользователями в nginx

Я написал сценарий, который копирует файлы magento и базу данных с нашего рабочего сервера и пытается настроить их на субдомене на нашем тестовом сервере.

На каждом тестовом сайте есть: - уникальный поддомен - работа под уникальным пользователем, указанным в пуле php-fpm

Вот конфигурация пула php-fpm:

[test1]
user = test1
group = test1
listen = /run/php/php7.0-test1-fpm.sock
listen.owner = www-data
listen.group = www-data

Поэтому я бы настроил последующие сайты под разными пользователями следующим образом:

[test2]
user = test2
group = test2
listen = /run/php/php7.0-test2-fpm.sock
listen.owner = www-data
listen.group = www-data

Проблема возникает, когда я пытаюсь дублировать блок сервера magento nginx (сокращенная версия вставлена ​​ниже):

 upstream fastcgi_backend {
     server  unix:/run/php-fpm/php-test1-fpm.sock;
 }

 server {

     listen 80;
     server_name test1.magento-dev.com;
     set $MAGE_ROOT /usr/share/nginx/html/test1;
     include /usr/share/nginx/html/test1/nginx.conf.sample;
 }

Если я продублирую конфигурацию следующим образом:

 upstream fastcgi_backend {
     server  unix:/run/php-fpm/php-test2-fpm.sock;
 }

 server {

     listen 80;
     server_name test2.magento-dev.com;
     set $MAGE_ROOT /usr/share/nginx/html/test2;
     include /usr/share/nginx/html/test2/nginx.conf.sample;
 }

Я получаю сообщение об ошибке, потому что upsteam fastcgi_backend уже определен. Я прочитал документацию nginx по восходящему потоку, и там говорится, что это пул серверов, но я действительно не понимаю, что здесь происходит, чтобы указать восходящий поток, подобный этому, для передачи запросов php.

Что я делаю не так? Как мне настроить несколько сайтов magento на поддоменах, работающих под разными пользователями?

Как я это исправил:

Я переименовал восходящий поток, но я не осознавал, что имя восходящего потока используется в proxy_pass. Вам нужно отредактировать proxy_pass в nginx. conf.sample в корне Magento.

2
задан 21 December 2017 в 03:16
1 ответ

Вот как я настроил несколько пулов с помощью Nginx и PHP 5.6. Я не использую пути, я использую сокеты. Я немного отредактировал свои файлы, чтобы сделать их более общими, поэтому если что-то не подходит, считайте, что это опечатка.

/etc/php-fpm-5.6.d/pool1

[pool1]
listen = 127.0.0.1:9000

/ etc / php-fpm- 5.6.d / pool2

[pool2]
listen = 127.0.0.1:9001

/etc/nginx/upstreams.conf

upstream php56-pool1 {
    server 127.0.0.1:9000;
}

upstream php56-pool2 {
    server 127.0.0.1:9001;
}

Вот соответствующие части моих блоков расположения Nginx.

/etc/nginx/site1.conf

location ~ \.php$ {
    fastcgi_pass   php56-pool1;
    include        fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_index index.php;
}

/ etc / nginx / site2. conf

location ~ php$ {
    fastcgi_pass php56-pool2;
    include        fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
2
ответ дан 3 December 2019 в 11:27

Теги

Похожие вопросы