
Me gustaría saber cómo iniciar k=10 procesos del servidor Apache2 al reiniciar la versión alfa de Ubuntu 16.04. Ayer leí esta URL, [https://rudd-o.com/linux-and-free-software/tuning-an-apache-server-in-5-minutos], que dice usar Apache2 con el módulo prefork.c y establecer StartServers igual a 10
<IfModule prefork.c>
StartServers 4
MinSpareServers 3
MaxSpareServers 10
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 10000
</IfModule>
Desafortunadamente, mi apache2 solo tiene el módulo event.c. Intenté actualizar apache2 al módulo prefork.c con sudo apt-get install apache-mtm-prefork y el error de instalación decía que dicho paquete no estaba disponible porque podría estar desactualizado u obsoleto. Luego probé sudo apt-get update y recibí el mismo mensaje de error.
Mi siguiente paso fue intentar configurar el módulo de eventos apache2 con StartServers = 5 cambiando /etc/httpd.conf y luego reiniciando mi archivo systemd apache.service y mi ps -ef | grep -in "apache2" muestra solo 2 procesos www-data apache2 y ps-ef | grep -in "mod" no muestra ningún proceso mod-mono-server4.
Además, al ejecutar apache2 en el símbolo del sistema de bash shell, decía error de sintaxis: Falta la variable de entorno APACHE2_LOCK_FILE. Descubrí que APACHE2_LOCK_FILE está definido en mi archivo /etc/apache2/envvars.
La página de manual de apache2 de Ubuntu 16.04 dice: "En general, apache2 no debe invocarse directamente, sino que debe invocarse a través de /etc/init.d/apache2 o apache2ctl. La configuración predeterminada de Debian requiere variables de entorno definidas en /etc/ apache2/envvars y no están disponibles si apache2 se inicia directamente. Sin embargo, apache2ctl se puede utilizar para pasar argumentos arbitrarios a apache2.
Para poder usar /etc/apache2/envars, edité mi archivo systemd apache.service para usar ExecStart = /etc/init.d/apache2 start y reinicié mi escritorio Lenovo ThinkStation Ubuntu 16.04 y fue en vano, todavía tengo solo 2 www-data procesos apache2 y ps-ef | grep -in "mod" no muestra ningún proceso mod-mono-server4 cuando ejecuté ps -ef | grep -en "apache2".
¿Puedo preguntar qué hice mal y cómo solucionarlo? Sugiera pruebas que pueda hacer.
Sé que muchos usuarios de la versión alfa de Ubuntu 16.04 pronto se quejarán del mismo problema que yo experimenté.
Respuesta1
Primero, puede confirmar que ya tiene el módulo mpm_prefork al ver que se envió en el apache2
paquete en 16.04. Verás un par de resultados si haces esto:
dpkg -L apache2 | grep fork
/etc/apache2/mods-available/mpm_prefork.conf
/etc/apache2/mods-available/mpm_prefork.load
Ahora verifique qué módulo MPM está habilitado y verá que el módulo Event MPM está habilitado mientras que el módulo Prefork no lo está:
ls /etc/apache2/mods-enabled/mpm*
Parece que desea deshabilitar el módulo Event MPM y habilitar el módulo Prefork MPM, lo cual puede hacer con enlaces simbólicos y luego reiniciar Apache:
sudo rm /etc/apache2/mods-enabled/mpm*
sudo ln -s /etc/apache2/mods-available/*fork* /etc/apache2/mods-enabled/
Quizás entonces su directiva "StartServer" funcione como lo desea. El servidor Event MPM ejecuta un bucle de eventos en un solo proceso, por lo que no realiza todos los procesos adicionales.
También mencionaste iniciar Apache y systemd. Recomiendo NO iniciar http de Apache directamente o con apache2ctl. SOLO contrólelo a través de systemd para mantener la coherencia.
A continuación se muestran algunos comandos de control de systemd relacionados, como ejemplos:
sudo systemctl start apache2
sudo systemctl stop apache2
sudo systemctl restart apache2
Tenías más preguntas en tus comentarios sobre la configuración de Mono, ASPX y múltiples aplicaciones. Debe hacer esas preguntas por separado y tener claro si tiene intención de ofrecer varias aplicaciones en un solo dominio o varias aplicaciones en varios dominios.
Para que el servicio Apache2 se inicie en el arranque, ejecute:
sudo systemctl enable apache2
Respuesta2
Hay 3 pasos más para configurar Ubuntu 16.04 para servir contenido aspx que reside en diferentes directorios raíz.
Pon esto al final de apache2.coonf
Alias /test "/usr/share/doc/xsp/test" Alias /personal "/home/user/mypages" AddMonoApplications default "/test:/usr/share/doc/xsp/test,/personal:/home/user /mispáginas" SetHandler mono SetHandler mono
fuente /etc/apache2/envvars después de modificarlo de la siguiente manera:
envvars: variables de entorno predeterminadas para apache2ctl
esto no será correcto después de cambiar el uid
desarmar INICIO
para soportar múltiples instancias de apache2
si [ "${APACHE_CONFDIR##/etc/apache2-}" != "${APACHE_CONFDIR}" ]; luego SUFFIX="-${APACHE_CONFDIR##/etc/apache2-}" más SUFFIX= fi
Dado que no existe una forma sensata de obtener la configuración de Apache2 analizada en scripts, algunos
las configuraciones se definen a través de variables de entorno y luego se usan en apache2ctl,
/etc/init.d/apache2, /etc/logrotate.d/apache2, etc.
exportar APACHE_RUN_USER=venkat exportar APACHE_RUN_GROUP=venkat
ubicación del archivo de estado temporal. Esto podría cambiarse a /run en Wheezy+1
exportar APACHE_PID_FILE=/var/run/apache2/apache2.pid exportar APACHE_RUN_DIR=/var/run/apache2 exportar APACHE_LOCK_DIR=/var/lock/apache2
Sólo /var/log/apache2 es manejado por /etc/logrotate.d/apache2.
exportar APACHE_LOG_DIR=/var/log/apache2
La configuración regional utilizada por algunos módulos como mod_dav.
exportar LANG=C
Descomente la siguiente línea para utilizar la configuración regional predeterminada del sistema:
. /etc/default/locale
exportar idioma
El comando para obtener el estado de 'apache2ctl status'.
Algunos paquetes que proporcionan 'www-browser' necesitan '--dump' en lugar de '-dump'.
exportar APACHE_LYNX='www-browser -dump'
Si necesita un límite de descriptor de archivo más alto, descomente y ajuste el
siguiente línea (el valor predeterminado es 8192):
APACHE_ULIMIT_MAX_FILES='ulimit -n 65536'
Si desea pasar argumentos al servidor web, agréguelos a continuación
al entorno APACHE_ARGUMENTS.
exportar APACHE_ARGUMENTS=''
Habilite el modo de depuración para los scripts de mantenimiento.
Esto producirá una salida detallada sobre las instalaciones de paquetes de módulos de servidor web y aplicaciones web.
Instalaciones que interactúan con Apache.
exportar APACHE2_MAINTSCRIPT_DEBUG=1
En la parte superior de apache2.conf, coloque la línea: LoadModule mono_module /usr/lib/apache2/modules/mod_mono.so.
Para probar esto, pongahttp://127.0.0.1/test/Default.csy ponhttp://127.0.0.1/personal/Default.csen el navegador web Firefox.