Как запустить k = 10 серверных процессов Apache2 при перезагрузке альфа-версии Ubuntu 16.04?

Я хотел бы знать, как запустить 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 скоро будут жаловаться на ту же проблему, с которой я столкнулся.

0
23.06.2016, 13:52
2 ответа

Сначала вы можете убедиться, что у вас уже есть модуль 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
1
28.01.2020, 02:48

Есть еще 3 шага в настройке Ubuntu 16.04 для обслуживания содержимого aspx, находящегося в разных корневых каталогах.

  1. Поместите это в конец 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} }

    1. исходный / etc / apache2 / envvars после его изменения следующим образом:

      envvars - переменные среды по умолчанию для apache2ctl

      это будет неверно после изменения uid

      unset HOME

      для поддержки нескольких экземпляры apache2

      if ["$ {APACHE_CONFDIR ## / etc / apache2-}"! = "$ {APACHE_CONFDIR}"]; затем SUFFIX = "- $ {APACHE_CONFDIR ## / etc / apache2 -}" else SUFFIX = fi

      Поскольку разумного способа не существует чтобы получить проанализированную конфигурацию apache2 в сценариях, некоторые параметры

      определяются через переменные среды и затем используются в apache2ctl,

      /etc/init.d/apache2, /etc/logrotate.d/apache2 и т. д.

      экспорт APACHE_RUN_USER = venkat экспорт APACHE_RUN_GROUP = venkat

      расположение файла временного состояния. Это можно изменить на / run в Wheezy + 1

      export APACHE_PID_FILE = / var / run / apache2 / apache2.pid export APACHE_RUN_DIR = / var / run / apache2 export APACHE_LOCK_DIR = / var / lock / apache2

      Только / var / log / apache2 обрабатывается /etc/logrotate.d/apache2.

      export APACHE_LOG_DIR = / var / log / apache2

      Языковой стандарт, используемый некоторыми модулями, такими как mod_dav

      export LANG = C

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

      . / etc / default / locale

      export LANG

      Команда для получения статуса для 'apache2ctl status'.

      Некоторым пакетам, предоставляющим 'www-browser', требуется '--dump' вместо '-dump'.

      export APACHE_LYNX = 'www-browser -dump'

      Если вам нужен более высокий предел дескриптора файла, раскомментируйте и настройте следующую строку

      (по умолчанию 8192):

      APACHE_ULIMIT_MAX_FILES = 'ulimit -n 65536 '

      Если вы хотите передать аргументы веб-серверу, добавьте их ниже

      в среду APACHE_ARGUMENTS.

      export APACHE_ARGUMENTS = ''

      Включить режим отладки для сценариев сопровождающего.

      Это даст подробный вывод об установках пакетов модулей веб-сервера и установках веб-приложений

      , которые взаимодействуют с Apache

      export APACHE2_MAINTSCRIPT_DEBUG = 1

      1. В верхней части apache2.conf поместите строку: { {1}} LoadModule mono_module /usr/lib/apache2/modules/mod_mono.so.

      2. Чтобы проверить это, поместите http://127.0.0.1/test/Default.cs и поместите http://127.0.0.1/personal/Default.cs в Веб-браузер Firefox.

0
28.01.2020, 02:48

Теги

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