NGINX vs Apache: ¿Cuál es el mejor servidor web para WordPress?
Publicado: 2023-02-12Para ejecutar un sitio web de WordPress, debe alojarlo en un servidor web. Esto es lo que permite a los navegadores web solicitar los datos de su sitio. Sin embargo, hay varias opciones de servidor web, lo que puede hacer que elegir uno sea una tarea desalentadora.
Si bien hay muchos servidores web para elegir, Apache y NGINX son las opciones más populares. Pero, ¿cuál de los dos es el mejor servidor web?
Estos dos servidores web manejan más del 50% de todo el tráfico web. Si bien comparten muchas cualidades, existen diferencias que debe conocer y que pueden ayudarlo a elegir el adecuado para su sitio. En este artículo, discutiremos las diferencias entre NGINX y Apache. Luego veremos cómo puede instalar WordPress en ambos tipos de servidores. ¡Empecemos!
Comparación de rendimiento: NGINX vs Apache
Como mencionamos anteriormente, NGINX y Apache son las opciones de servidor web más destacadas. Pueden manejar diversas cargas de trabajo y trabajar con otro software para formar pilas LAMP y LEMU. Sin embargo, para comparar con precisión estos servidores web, deberá comprender en qué se diferencian.
apache
Apache es el más antiguo de los dos servidores y fue lanzado y desarrollado por primera vez por Apache Software Foundation en 1995 por Robert McCool. Desde 1996, Apache ha sido el principal servidor web y lo utiliza aproximadamente el 38,7 % de los sitios web. Actualmente, Apache Foundation continúa lanzando versiones para Apache.
El módulo de Apache proporciona una variedad de beneficios, que incluyen:
- Opciones de preinstalación: Apache viene preinstalado en las principales distribuciones de Linux.
- Comunidad de usuarios: Apache tiene una gran comunidad de usuarios que se ofrecen ayuda unos a otros.
- Sistema de carga de módulos dinámicos: este sistema evita que toques el paquete principal al actualizar el servidor.
- Reescrituras de URL en .htaccess : Apache 2 usa mod_rewrite para reescrituras limpias.
- Diseño modular: Apache ofrece una mayor personalización y flexibilidad debido al diseño modular.
- Configuración del servidor usando el archivo httpd.conf : La configuración es fácil, ya que no necesita acceder al archivo apache2.conf principal.
- Actuar como servidor de "puerta de enlace": Apache también puede cumplir la función de servidor proxy inverso.
El servidor Apache es un servidor web fácil de usar con muchas funciones de personalización. El software también es compatible con servidores Unix y Windows.
NGINX
NGINX fue lanzado en 2004 por Igor Sysoev, fundador de NGINX Inc., para resolver el problema de C10K. Este es el desafío que enfrentan los servidores web cuando manejan 10,000 o más solicitudes de conexión simultáneas.
Para resolver esto, NGINX se desarrolló como una arquitectura asíncrona, sin bloqueo y basada en eventos. Esta es una de las principales diferencias entre NGINX y Apache. También es una de las razones por las que aproximadamente el 32,1 % de los sitios web utilizan NGINX.
Hay muchos otros beneficios que proporciona NGINX, como:
- Diseño liviano : NGINX puede ejecutarse en un hardware mínimo y usa menos memoria que Apache.
- Manejo de contenido estático : NGINX ofrece un mejor manejo de contenido estático cuando se configura correctamente.
- Capacidad de respuesta de carga pesada : NGINX sigue siendo altamente receptivo cuando hay mucho tráfico.
- Diseño fácil de usar : la curva de aprendizaje es más fácil y NGINX es fácil de usar para principiantes.
- Configuración modular : el diseño de este servidor permite construcciones flexibles y una variedad de módulos de terceros.
- Proxy inverso: NGINX Plus ofrece un proxy inverso basado en software con capacidades similares a las soluciones basadas en hardware a un costo menor.
NGINX y NGINX Plus a menudo se consideran mejores opciones para sitios web de alto tráfico debido a sus capacidades de equilibrio de carga para manejar cargas más pesadas. También es ideal para mantener el máximo rendimiento en sitios con mucho contenido web estático.
¿Cuál es la diferencia entre Apache y NGINX?
Si bien NGINX y Apache HTTP Server son similares, existen muchas diferencias entre los dos. La mayor distinción es la forma en que estos servidores web manejan múltiples solicitudes de clientes. Apache usa una solución bifurcada, mientras que NGINX usa un bucle de eventos sin bloqueo.
Apache proporciona módulos de procesamiento múltiple (MPM) que dictan cómo funciona el manejo de solicitudes. El enfoque bifurcado facilita el intercambio de la arquitectura de manejo de conexiones. Los módulos utilizados en este enfoque son adiciones a la funcionalidad central de Apache. Cada módulo de procesamiento múltiple inicia un proceso diferente para manejar las solicitudes del servidor.
Un ejemplo es mpm-worker , un módulo que crea procesos que manejan múltiples subprocesos. Cada subproceso es una única conexión con el servidor. Agregar este módulo permite escalar el servidor y permite la gestión de grandes cantidades de tráfico.
NGINX es diferente y genera solo procesos de trabajo para el manejo de solicitudes simultáneas. Estos procesos son eventos sin bloqueo que verifican y procesan continuamente múltiples solicitudes. Esta comprobación continua crea un bucle. Todos los eventos del ciclo son asincrónicos y se eliminan del ciclo cuando se cierra la conexión.
¿Cuál es el mejor software de servidor web de WordPress?
Tanto Apache como NGINX funcionan bien con el alojamiento de WordPress. Sin embargo, NGINX podría ser la mejor opción si desea mejorar el rendimiento. Echemos un vistazo a cómo instalar WordPress en ambos tipos de servidores, para que esté listo para comenzar con cualquiera de ellos.
Cómo instalar WordPress en Apache
Para instalar WordPress en Apache, deberá configurar una pila LAMP (Linux, Apache, MySQL y PHP). Esto generalmente se hace en un servidor Ubuntu.
Paso 1: cree un usuario de Sudo en su servidor
Para crear un usuario, inicie sesión en su servidor como usuario raíz. Luego use el comando agregar usuario a continuación para crear una nueva cuenta:
$ adduser username
El servidor le pedirá que establezca y confirme una contraseña. A continuación, complete los detalles del usuario. Luego puede proporcionar acceso sudo a ese usuario. Este acceso permite al usuario ejecutar comandos que normalmente completa el usuario root.
Para agregar el usuario a un grupo sudo , ingrese el siguiente comando:
$ usermod -aG sudo username
Luego, querrá iniciar sesión en el servidor como usuario sudo para el resto del proceso de instalación.
Paso 2: Instale el servidor web Apache
Para instalar Apache, deberá usar el administrador de paquetes de Ubuntu apt . Este es el valor predeterminado en los servidores de Ubuntu. Ingresar el siguiente comando sudo inicia la instalación después de ingresar su contraseña:
$ sudo apt update $ sudo apt install apache2
Luego verá los paquetes que se instalarán y cuánto espacio en disco se requiere. Presione Y y luego Enter para iniciar la instalación.
Paso 3: Instale el servidor de base de datos MySQL
A continuación, deberá instalar el sistema de gestión de bases de datos MySQL. El siguiente comando en el administrador de paquetes iniciará la instalación:
$ sudo apt install mysql-server
Los paquetes y el espacio en disco requerido se mostrarán nuevamente. Para iniciar la instalación, presione Y y establezca la contraseña de root.
Paso 4: Instalar PHP
PHP es la parte de su pila LAMP que procesa el código en contenido dinámico. Para instalarlo, debe ingresar el siguiente comando:
$ sudo apt install php libapache2-mod-php php-mysql
PHP debería instalarse sin problemas. Deberá reiniciar el servidor para completar la instalación de la pila. Para hacerlo, ingrese el siguiente comando:
$ sudo systemctl restart apache2
Su pila LAMP ahora está instalada y configurada.
Paso 5: configurar hosts virtuales
Los hosts virtuales encapsulan los detalles de configuración y son un paso recomendado. La encapsulación le permite alojar más de un sitio web en un servidor.
Los servidores Apache utilizan por defecto los directorios /var/www/html que son difíciles de manejar para varios sitios web. Para crear un host virtual, deberá configurar una estructura de directorio en /var/www para el dominio del nuevo sitio web.
Use el siguiente comando para crear esta estructura:
sudo mkdir /var/www/new_domain
Cambie new_domain al dominio de su sitio web. Luego cree un archivo index.html con contenido de muestra usando el comando nano :
$ nano /var/www/new_domain/index.html
Para asegurarse de que Apache sirva su contenido, también deberá crear un archivo de host. El siguiente comando crea el archivo de configuración:
$ sudo nano /etc/apache2/sites-available/your_domain.conf
Luego agregue el siguiente bloque de configuración:
<VirtualHost *:80> ServerAdmin [email protected] ServerName new_domain ServerAlias www.new_domain DocumentRoot /var/www/new_domain ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
El siguiente comando habilita el archivo, mientras que el segundo deshabilita el sitio predeterminado en el servidor:
$ sudo a2ensite new_domain.conf $ sudo a2dissite 000-default.conf
Su host virtual ahora debería estar configurado y funcionando. Este directorio recién creado debe usarse para instalar WordPress.
Paso 6: Instalar WordPress
Después de configurar su pila LAMP, puede instalar WordPress. Descargue la última versión de WordPress e instálela con el siguiente comando:
$ sudo apt update $ sudo apt install wordpress php libapache2-mod-php mysql-server php-mysql
A continuación, configure Apache para WordPress y cree la base de datos MySQL. Luego use la interfaz del navegador web de WordPress para completar la configuración del sitio web. Esto incluye crear un título de sitio y establecer una contraseña.
Cómo instalar WordPress en NGINX
Para instalar WordPress en NGINX, necesita un servidor que ejecute una de las distribuciones compatibles con NGINX Unit. Si está utilizando Linux, creará una pila LEMU (Linux, NGINX, MySQL y NGINX Unit).
Paso 1: Instalar MySQL
Antes de comenzar, cree un usuario de servidor con acceso sudo . Inicie sesión en su servidor como usuario raíz y use el siguiente comando para crear una nueva cuenta:
$ adduser username
Deberá ingresar y confirmar una contraseña antes de completar los detalles del usuario. Luego puede proporcionar acceso sudo a ese usuario. Este acceso permite al usuario ejecutar comandos que normalmente completa el usuario raíz.
Para agregar el usuario a un grupo sudo , ingrese el siguiente comando:
$ usermod -aG sudo username
Inicie sesión en el servidor como usuario sudo y use el siguiente comando para instalar MySQL:
$ sudo apt-get install mysql-server
Introduzca una nueva contraseña raíz. A continuación, se puede ejecutar la herramienta de configuración de MySQL. Este es un asistente de configuración que lo guía a través del proceso de instalación.
Paso 2: crea una base de datos MySQL
Una vez que MySQL esté listo, puede crear una nueva base de datos. También deberá crear un nuevo usuario con permiso de administración. Para hacer esto, inicie sesión en la cuenta raíz de MySQL e ingrese los siguientes comandos:
$ sudo mysql -u root -p mysql> CREATE DATABASE wordpress; mysql> CREATE USER [email protected] IDENTIFIED BY 'secure_password'; mysql> GRANT ALL PRIVILEGES ON wordpress.* TO [email protected]; mysql> FLUSH PRIVILEGES; mysql> Exit Bye
El comando Flush Privileges se asegura de que MySQL reconozca los cambios que ha realizado. Debe cambiar el nombre de usuario y la contraseña predeterminados para que coincidan con sus preferencias.
Paso 3: Instalar WordPress
Antes de instalar WordPress, debe crear una ubicación de archivo temporal con el siguiente comando:
$ cd /var/www/ $ sudo wget http://wordpress.org/latest.tar.gz $ sudo tar xzvf latest.tar.gz
Este comando también descarga y descomprime WordPress.
Paso 4: Configurar WordPress
A continuación, cree una copia del archivo de configuración de WordPress y cámbiele el nombre con los siguientes comandos:
$ cd /var/www/wordpress $ sudo cp wp-config-sample.php wp-config.php
Puede actualizar las claves SALT en el archivo para mejorar la seguridad. El uso de nano abre el archivo wp-config.php y le permite buscar las claves SALT:
$ sudo nano wp-config.php
Reemplace las claves con las recién generadas y luego guarde y salga del archivo.
Paso 5: Instalar PHP
Si bien puede usar la Unidad NGINX, aún debe instalar PHP. Puede usar el siguiente comando para hacerlo:
$ sudo apt-get install -y php7.0 php7.0-common php7.0-mbstring php7.0-gd php7.0-intl php7.0-xml php7.0-mysql php7.0-mcrypt
Esto es necesario porque WordPress se basa en varias extensiones que no están incluidas en NGINX Unit.
Paso 6: Instale la unidad NGINX
Finalmente, deberá instalar la Unidad NGINX precompilada para el sistema operativo de su servidor. Use el siguiente comando para instalar el módulo para PHP:
$ sudo apt-get install unit-php $ sudo service unit restart $ sudo curl -X PUT --data-binary @/usr/share/doc/unit-php/examples/unit.config --unix-socket /run/control.unit.sock http://localhost/config $ curl http://localhost:8300/
Estos comandos también verifican que la Unidad NGINX y PHP funcionen correctamente.
A continuación, debe instalar y configurar NGINX Open Source. Puede instalar un paquete preconstruido desde la rama principal. Estos incluyen las últimas funciones y parches. Después de esta configuración, WordPress estará listo para usar.
Sigue aprendiendo con WP Engine
Apache y NGINX son las opciones de software de servidor web más populares. Pero en la batalla entre NGINX y Apache, ¿cuál sale ganando? Si bien son similares en muchos aspectos, el servidor NGINX proporciona un mejor rendimiento para sitios web de alto tráfico. Sin embargo, Apache tiene una comunidad más grande con más documentación.
Por supuesto, necesitará varias cosas para desarrollar un sitio web sobresaliente. ¡Estos incluyen las herramientas adecuadas, los mejores recursos y un alojamiento web de primer nivel!
Para obtener más recursos de SEO y relacionados con la web, como la optimización de WordPress y la comprensión de los errores HTTP 400, consulte nuestro Centro de recursos para mejorar su sitio.