У меня есть конфигурация 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?
Если ваш PHP5-FPM
установлен на 192.168.0.10
и прослушивание порта 9000, и PHP7-FPM
установлен на 192.1680.200:9000
, то ваша конфигурация в порядке.
Тогда вам нужно поделиться файлами с хозяином на гостя. NFS - это один из вариантов.