Apache 2.4 на AIX 6.1, несколько виртуальных хостов с Proxy / BalancerMember -> проблемы с файлами slotmem с общей памятью (shm)

У меня есть конфигурация Apache 2.4.23 с включенными mod_proxy / mod_proxy_balancer / mod_slotmem_shm / mod_lbmethod_byrequests.

Кроме того, у меня есть несколько VirtualHost, прослушивающих разные порты с такая настройка (ПОРТ и КОМПОНЕНТ уникальны):

Listen PORT

<VirtualHost *:PORT>
    Include "eib/conf/default-proxy-params"

    ErrorLog "logs/PORT-COMPONENT-error.log"
    CustomLog "logs/PORT-COMPONENT-access.log" common

    <Proxy balancer://COMPONENT/>
            BalancerMember https://HOST1:PORT
            BalancerMember https://HOST2:PORT
            ProxySet lbmethod=byrequests
    </Proxy>

    ProxyPass / balancer://COMPONENT/ lbmethod=byrequests nofailover=Off maxattempts=3
    ProxyPassReverse / balancer://COMPONENT/
</VirtualHost>

Когда у меня есть только одна запись VirtualHost в моей конфигурации, все работает нормально. Как только я добавляю еще один VirtualHost, Apache вылетает из-за ошибки конфигурации:

[Wed Oct 12 21:59:38.211829 2016] [slotmem_shm:error] [pid 4129010:tid 1] (24)Too many open files: AH02611: create: apr_shm_create(/apache/logs/slotmem-shm-pf3f0916c.shm) failed
[Wed Oct 12 21:59:38.211927 2016] [:emerg] [pid 4129010:tid 1] AH00020: Configuration Failed, exiting

Я проверил, что ulimit установлен на неограниченное количество файлов, так что это не может быть проблемой. Похоже, что существует конфликт между файлами slotmem, созданными для BalancerMemebers.

Когда я начинаю использовать только один VirtualHost, все будет работать должным образом, и я получу следующие файлы slotmem: Идея состоит в том, чтобы обслуживать https://www.example.com/ с PHP7 и https: //www.example ....

Ищете способ доступа к PHP7-FPM в контейнере LXC и PHP5-FPM в другой, пока NGINX установлен на хосте. Идея состоит в том, чтобы обслуживать https://www.example.com/ с PHP7 и https://www.example.com/old/ с PHP5.

Вот my conf для NGINX:

    location ~ /old/\.php$ {
    try_files $uri =404;
    fastcgi_intercept_errors on;
    fastcgi_index  index.php;
    include        fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    fastcgi_pass   192.168.0.10:9000;
}


location ~ \.php$ {
    try_files $uri =404;
    fastcgi_intercept_errors on;
    fastcgi_index  index.php;
    include        fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    fastcgi_pass   192.168.0.200:9000;
}

Дополнительно: Как я могу поделиться файлами PHP с контейнерами LXC? Требуется ли NFS?

0
задан 12 October 2016 в 23:27
1 ответ

Если ваш PHP5-FPM установлен на 192.168.0.10 и прослушивание порта 9000, и PHP7-FPM установлен на 192.1680.200:9000 , то ваша конфигурация в порядке.

Тогда вам нужно поделиться файлами с хозяином на гостя. NFS - это один из вариантов.

0
ответ дан 24 November 2019 в 05:37

Теги

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