Я хотел бы знать, как запустить k = 10 Сервер Apache2 обрабатывается после перезагрузки альфа-версии Ubuntu 16.04. Вчера я прочитал этот URL [ https://rudd-o.com/linux-and-free-software/tuning-an-apache-server-in-5-minutes] , в котором говорится: используйте Apache2 с модулем prefork.c и установите StartServers равным 10
StartServers 4
MinSpareServers 3
MaxSpareServers 10
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 10000
К сожалению, мой apache2 имеет только модуль event.c. Я попытался обновить apache2 до модуля prefork.c с помощью sudo apt-get install apache-mtm-prefork, и ошибка установки сообщила, что такой пакет недоступен, потому что он может быть устаревшим или устаревшим. Затем я попробовал sudo apt-get update и получил то же сообщение об ошибке.
Следующим шагом я попытался настроить модуль событий apache2 с StartServers = 5, изменив /etc/httpd.conf, а затем перезапустив мой файл systemd apache.service и ps -ef | grep -in "apache2" показывает только 2 процесса www-data apache2 и ps-ef | grep -in "mod" не показывает процесс mod-mono-server4.
Кроме того, при запуске apache2 в командной строке оболочки bash сообщалось, что отсутствует синтаксическая ошибка переменной среды APACHE2_LOCK_FILE. Я обнаружил, что APACHE2_LOCK_FILE определен в моем файле / etc / apache2 / envvars.
На странице руководства Ubuntu 16.04 apache2 сказано: «В общем, apache2 не следует вызывать напрямую, его следует вызывать через / etc / init.d / apache2 или apache2ctl. Для конфигурации Debian по умолчанию требуются переменные среды, которые определены в / etc / apache2 / envvars и недоступны, если apache2 запускается напрямую. Однако apache2ctl можно использовать для передачи произвольных аргументов в apache2. "
Чтобы я мог использовать / etc / apache2 / envars, я отредактировал свой файл systemd apache.service, чтобы использовать ExecStart = /etc/init.d/apache2 start и перезагрузил свой рабочий стол Lenovo ThinkStation Ubuntu 16.04 и безрезультатно, у меня остались только 2 процесса www-data apache2, а ps-ef | grep -in "mod" не показывает никакого процесса mod-mono-server4, когда я запускал ps -ef | grep - в "apache2".
Могу я спросить, что я сделал не так и как это исправить? Пожалуйста, предложите тесты, которые я могу сделать.
Я знаю, что многие пользователи альфа-версии Ubuntu 16.04 скоро будут жаловаться на ту же проблему, с которой я столкнулся.
Сначала вы можете убедиться, что у вас уже есть модуль mpm_prefork, посмотрев, что он поставляется в пакете apache2
в 16.04. Вы увидите пару результатов для него, если сделаете это:
dpkg -L apache2 | grep fork
/etc/apache2/mods-available/mpm_prefork.conf
/etc/apache2/mods-available/mpm_prefork.load
Теперь проверьте, какой модуль MPM включен, и вы увидите, что модуль Event MPM включен, а модуль Prefork - нет:
ls /etc/apache2/mods-enabled/mpm*
Похоже, вы хотите отключить модуль Event MPM и включить модуль Prefork MPM, что можно сделать с помощью симлинков, а затем перезапустить Apache:
sudo rm /etc/apache2/mods-enabled/mpm*
sudo ln -s /etc/apache2/mods-available/*fork* /etc/apache2/mods-enabled/
Возможно, тогда ваша директива "StartServer" будет работать как нужно. Сервер Event MPM запускает цикл событий в одном процессе, поэтому он не использует все дополнительные процессы.
Вы также упомянули запуск Apache и systemd. Я не рекомендую запускать http Apache напрямую или с помощью apache2ctl. ТОЛЬКО управляйте им через systemd для согласованности.
Вот несколько соответствующих команд управления systemd в качестве примеров:
sudo systemctl start apache2
sudo systemctl stop apache2
sudo systemctl restart apache2
В комментариях у вас было больше вопросов о настройке Mono, ASPX и нескольких приложений. Вам следует задать эти вопросы отдельно и уточнить, собираетесь ли вы обслуживать несколько приложений на одном домене или несколько приложений на нескольких доменах.
Чтобы служба Apache2 запускалась при загрузке, выполните:
sudo systemctl enable apache2
Есть еще 3 шага в настройке Ubuntu 16.04 для обслуживания содержимого aspx, находящегося в разных корневых каталогах.
Поместите это в конец apache2.coonf
Псевдоним / test "/ usr / share / doc / xsp / test" Псевдоним / personal "/ home / user / mypages" AddMonoApplications default "/ test: / usr / share / doc / xsp / test, / personal: / home / user / mypages " SetHandler mono SetHandler mono {{1} }
исходный / etc / apache2 / envvars после его изменения следующим образом:
unset HOME
if ["$ {APACHE_CONFDIR ## / etc / apache2-}"! = "$ {APACHE_CONFDIR}"]; затем SUFFIX = "- $ {APACHE_CONFDIR ## / etc / apache2 -}" else SUFFIX = fi
экспорт APACHE_RUN_USER = venkat экспорт APACHE_RUN_GROUP = venkat
export APACHE_PID_FILE = / var / run / apache2 / apache2.pid export APACHE_RUN_DIR = / var / run / apache2 export APACHE_LOCK_DIR = / var / lock / apache2
export APACHE_LOG_DIR = / var / log / apache2
export LANG = C
export LANG
В верхней части apache2.conf поместите строку: { {1}} LoadModule mono_module /usr/lib/apache2/modules/mod_mono.so.
Чтобы проверить это, поместите http://127.0.0.1/test/Default.cs и поместите http://127.0.0.1/personal/Default.cs в Веб-браузер Firefox.