Apache2 Ubuntu
Apache2 Ubuntu
Apache2 Ubuntu
https://www.vozidea.com/diferencias-entre-apache-prefork-event-worker
Existen 3 tipos de MPM con los que trabaja apache. y estos determinan el tipo de
multiprocesamiento que
realizara apache para las peticiones, estos se tienen que habilitar en la carpeta
de modulos y solo puede
correr uno
mpm-prefork
Apache crear procesos hijos para atender las peticiones, esto sera un problema
si es que tiene
demasiada concurrencia y pocos recursos en cpu y ram, debido que para cada
peticion un hijo se ocupa
y no puede atender a otro hasta que se desocupe
Cada hijo es como si se hubiera levantado otra instancia del servidor originar,
por no decir que es una replica
MPM Prefork es el módulo más estable pero también es el que más recursos
consume (en cuanto a
RAM y CPU) ya que mantener los diferentes procesos de Apache es “caro” en
cuanto a recursos
<IfModule mpm_prefork_module>
StartServers 5 con cuantos procesos hijo
empieza apache
MinSpareServers 5 numero de procesos hijos tiene
que tener para cubrir las peticiones
MaxSpareServers 10 numero maximo de procesos hijos
que puede crecer para atender las peticiones
# ServerLimit 1024
MaxRequestWorkers 150
MaxConnectionsPerChild 0
</IfModule>
mpm-worker
Es una mejora de npm-prefork, ya que este trabaja con varios thread por cada
proceso hijo y esto permite
atender mas peticiones, una desventaja es que hay que ver la compatibilidad de
modulos que sean thread-safe
MPM Worker al usar threads sólo soporta módulos de Apache que sean thread-safe,
por lo que el
famoso mod_php no puede ser usado con Apache MPM Worker.
Existe una alternativa a mod_php compatible con Worker que se llama php-fpm, la
cual también
ofrece sus ventajas e inconvenientes frente a mod_php. Resumiendo mucho una
comparativa
entre mod_php y php-fpm podríamos decir:
mpm-event
MPM Event hasta hace poco era considerado como experimental pero hoy en día ya
es una
opción estable. Es una mejora de MPM Worker y soluciona un problema de
optimización que
mostraba MPM Worker con la opción Keep Alive de Apache. No quiero entrar en una
explicación
detallada sobre el problema de optimización y confundiros con datos técnicos,
por lo que seré
breve y diré que MPM Event mejora el rendimiento de Apache durante las
peticiones
con Keep Alive, que son muy comunes.
Como MPM Event está basado en MPM Worker, tiene las mismas ventajas e
inconvenientes que este,
por lo que obviamente MPM Event no es compatible con mod_php, habrá que usar
php-fpm.
De igual manera para que podamos usar php con mpm_event, tenemos que optar por
php-fpm
fast-cgi
los [NAME_MODULO] son los nombres de los archivos de las carpetas mods-* y
terminan en .conf, .load
a2dismod [NAME_MODULO] comando para deshabilitar un modulo de apache
a2enmod [NAME_MODULO] comando que habilita un modulo de apache
====================sites ==================
Virtualhost
Directiva donde configuramos un sitio web, estas son algunas opciones que nos
ofrece
ServerName ow‐fastcgi.com
ServerAlias: Son nombres alternativos para un host usados para coincidir con
requests para hosts
virtuales. ServerAlias puede aceptar comodines (por ejemplo:
*.miweb.com) mientras que ServerName no puede.
ServerAlias www.ow‐fastcgi.com
DocumentRoot: Indiicamos desde que path vamos a usar como directorio para est
Virtualhost
DocumentRoot /var/www/mysite/public
Directory(Directiva).............
FilesMatch(Directiva).............
ErrorLog ${APACHE_LOG_DIR}/example.com‐error.log
LogLevel: Indicamos el nivek de los logs: debug, info, notice, warn, error,
crit
En produccion no hay que usar debug ya que es peligroso y ademas
afecta al rendimiento
LogLevel debug
CustomLog: investigar...
CustomLog ${APACHE_LOG_DIR}/ow‐fastcgi.com‐access.log combined
Directory
Directiva donde configuramos los permisos que tendra cierto directorio, recibe
como parametro el path
del directorio
Options
Indexes: Opcion que nos permite mostrar o no los archivos que estan en
este directorio, por seguridad
se quitan estos permisos
Options -Indexes
- En /etc/mods-enabled/negotitation.conf se especifica la
prioridad del idioma
en el caso de que no se encuentre una página adecuada para
el idioma suministrado
por el navegador.
Options +MultiViews
DirectoryIndex: indicamos cual va ser el archivo index que debe cargar en este
directorio
DirectoryIndex inicio.html
AllowOverride: averiguar
AllowOverride All
Require: averiguar
FilesMatch
=============================== apache-utils===================================
Utilidades de apache
=============== ab =======
comando que nos permite simular peticiones a nuestro servidor
ab [OPCIONTS] URL:PORT/
[OPTIONS]
-c [N] numero de peticions concurrentes(cuantas maquinas o clientes)
-n [N] Total de peticiones que se realizaran entre todas las concurrencias
Ejemplo
ab -c 1000 -n 10000 http://192.168.1.16:80/contenido