Antes de entender qué es nginx, debemos saber cómo pronunciar nginx.
No es N G I N X. nginx se pronuncia como "Motor X".
nginx es una forma abreviada después de eliminar las dos e de "Engine X".
nginx es un servidor web de código abierto similar a Apache, pero muy ligero. nginx es tanto un servidor web como un servidor proxy inverso.
Las siguientes son algunas de las características de nginx:
- Serve archivos estáticos y de índice
- Proxy inverso con almacenamiento en caché
- Admite SSL
- Equilibrio de carga simple con tolerancia a fallas
- Se pueden configurar tanto servidores virtuales basados en nombres como basados en IP
- Autenticación básica HTTP
- Admite módulo de reescritura
- Admite gzip, XSLT, SSI y filtros de cambio de tamaño de imagen
- Se admiten todas las funciones principales del servidor proxy de correo
- y mucho más..
Esto es parte de una serie continua de artículos sobre nginx.
Comencemos por instalar nginx y ponerlo en funcionamiento, lo que lleva solo 5 minutos.
1. Descargar nginx
Descargue nginx desde aquí o use wget como se muestra a continuación. La versión estable actual es nginx 1.0.5
cd wget http://nginx.org/download/nginx-1.0.5.tar.gz tar xvfz nginx-1.0.5.tar.gz cd nginx-1.0.5
2. Instalar nginx
Hay muchas opciones que puede pasar a ./configure. Para identificar la lista de todas las opciones de configuración, haga lo siguiente.
./configure --help
Los siguientes son algunos de los módulos http que se habilitan automáticamente. Si necesita deshabilitarlos, debe pasar “–sin-http_[nombre_del_módulo]” a la opción ./configure. Por ejemplo, para deshabilitar "proxy_module", debe hacer ./configure –sin-http_proxy_module.
- charset_module:módulo de conjunto de caracteres HTTP
- gzip_module:módulo HTTP gzip para compresión
- ssi_module:el lado del servidor incluye módulos
- auth_basic_module:módulos de autenticación básica HTTP.
- autoindex_module – Índice automático
- rewrite_module:reescritura de HTTP que admite reglas de reescritura
- proxy_module:módulo de proxy inverso HTTP
- fastcgi_module:soporte para fastcgi
- memcached_module:módulo Memcached para nginx
- ..
Los siguientes son algunos de los módulos httpd que no se habilitan automáticamente. Si necesita habilitarlos, debe pasar “–with-http_[module_name]” a la opción ./configure. Por ejemplo, para habilitar SSL en nginx, debe hacer “./configure –with-http_ssl_module”.
- ssl_module:soporte para el módulo Secure Socket Layer (SSL)
- xslt_module:compatibilidad con el módulo de transformaciones de lenguaje de hoja de estilo extensible (XSLT)
- perl_module:compatibilidad con Perl
- ..
Para empezar, instale nginx con las opciones de configuración predeterminadas haciendo ./configure como se muestra a continuación.
./configure make make install
Durante ./configure, es posible que reciba el mensaje "./configure:error:el módulo de reescritura HTTP requiere la biblioteca PCRE". mensaje de error sobre la falta de la biblioteca PCRE requerida por el módulo de reescritura http de nginx.
Para resolver el problema, instale los paquetes “pcre” y “pcre-devel” en su Linux, o deshabilite el módulo de reescritura haciendo “./configure –sin-http_rewrite_module”
nginx se instalará en /usr/local/nginx como se muestra en la salida ./configure.
Configuration summary + using system PCRE library + OpenSSL library is not used + md5: using system crypto library + sha1: using system crypto library + using system zlib library nginx path prefix: "/usr/local/nginx" nginx binary file: "/usr/local/nginx/sbin/nginx" nginx configuration prefix: "/usr/local/nginx/conf" nginx configuration file: "/usr/local/nginx/conf/nginx.conf" nginx pid file: "/usr/local/nginx/logs/nginx.pid" nginx error log file: "/usr/local/nginx/logs/error.log" nginx http access log file: "/usr/local/nginx/logs/access.log" nginx http client request body temporary files: "client_body_temp" nginx http proxy temporary files: "proxy_temp" nginx http fastcgi temporary files: "fastcgi_temp" nginx http uwsgi temporary files: "uwsgi_temp" nginx http scgi temporary files: "scgi_temp"
3. Cambiar el puerto de escucha nginx predeterminado
Nginx está configurado para escuchar de forma predeterminada en el puerto 80. Si está instalando esto en una máquina con fines de prueba, que ya tiene un servidor apache en ejecución, debe cambiar el puerto de escucha de nginx.
Similar al archivo httpd.conf de apache, nginx tiene un archivo nginx.conf ubicado en /usr/local/nginx/conf.
En la sección del servidor de nginx.conf, cambie el puerto 80 a 8081.
# vi /usr/local/nginx/conf/nginx.conf server { listen 8081; server_name localhost;
4. Inicie el servidor Nginx
El ejecutable nginx se encuentra en el directorio /usr/local/nginx/sbin. Simplemente llame a este ejecutable para iniciar el servidor nginx.
cd /usr/local/nginx/sbin ./nginx
Una vez que comience esto, verá el "proceso maestro" de nginx y el "proceso de trabajo" si hace ps.
# ps -ef | grep -i nginx root 18596 13:16 nginx: master process ./nginx nobody 18597 13:16 nginx: worker process
Después de iniciar el servidor nginx, vaya a http://su-dirección-ip/ (o http://su-dirección-ip:8081, si cambió la directiva de escucha en nginx.conf), debería ver el valor predeterminado nginx index.html, que debería decir "¡Bienvenido a nginx!"
5. Detener servidor Nginx
Para detener el servidor nginx, haga lo siguiente.
cd /usr/local/nginx/sbin ./nginx -s stop
Para ver la versión actual de nginx, haga lo siguiente:
# ./nginx -v nginx: nginx version: nginx/1.0.5
Para depurar problemas, consulte los archivos error.log y access.log ubicados en /usr/local/nginx/logs
# ls /usr/local/nginx/logs/ access.log error.log nginx.pid