Instalar y compilar Nginx 1.10.0 ”(liberación estable) de fuentes en Rhel/Centos 7.0

Instalar y compilar Nginx 1.10.0 ”(liberación estable) de fuentes en Rhel/Centos 7.0

Nginx es el servidor web de más rápido crecimiento en la actualidad en los servidores públicos orientados a Internet debido a su modelo modular de código abierto gratuito, alto rendimiento, estabilidad, archivos de configuraciones simples, arquitectura asíncrona (basada en eventos) y bajos recursos necesarios para ejecutar.

Requisitos

Para rhel 7.0
  1. Instalación mínima de RHEL 7.0
  2. Suscripción y repositorios activos de Redhat en RHEL 7.0
Para Centos 7.0
  1. Instalación mínima de CentOS 7.0
Configurar la dirección IP estática
  1. Establecer la dirección IP estática en Rhel/Centos 7.0

Este tutorial lo guiará para instalar la última versión estable de Nginx 1.10.0 en Red Hat Enterprise o Centos 7 de las fuentes, porque los espejos de repositorios RHEL/CENTOS 7 oficiales no proporcionan un paquete binario. Si desea evitar la instalación de fuentes, puede agregar el repositorio oficial de Nginx e instalar el paquete binario (las versiones disponibles son 1.9.X) con la ayuda de Yum Package Manager como se muestra:

Para habilitar el repositorio oficial YUM oficial para RHEL/CentOS 7, cree un archivo /etc/yum.repositar.d/nginx.repositorio Con el siguiente contenido:

[nginx] name = nginx repo baseUrl = http: // nginx.org/paquetes/mainline/centos/7/$ basearch/gpgcheck = 0 habilitado = 1 

Reemplazar "Centos" con "Rhel", Dependiendo de la distribución que esté utilizando e instale Nginx con Yum Package Manager como se muestra:

# yum install nginx 

Importante: Tenga en cuenta que los repositorios oficiales anteriores de Nginx Yum le darán una versión anterior de NGINX, si realmente desea construir la versión más reciente de NGINX, entonces le sugiero que siga la instalación de origen como se muestra a continuación.

El uso de la compilación e instalación de fuentes tiene algunos beneficios, debido al hecho de que puede instalar la última versión disponible, puede ajustar la configuración de Nginx agregando o eliminando módulos, cambiar la ruta del sistema de instalación u otras configuraciones importantes, en otras palabras, tiene un Control completo sobre el proceso de instalación.

Paso 1: descargar, compilar e instalar nginx

1. Antes de comenzar el proceso de compilación e instalación de Nginx, asegúrese de tener Compilador C / C ++, PCRE (Expresiones regulares compatibles con perl), Zlib Biblioteca de compresión y Openssl (Si tiene la intención de ejecutar NXing con soporte SSL) paquetes instalados en su máquina emitiendo el siguiente comando.

# yum -y install gcc gcc-c ++ make zlib-devel pcre-devel openssl-devel 
Instale el compilador GCC y C ++
Plugins cargados: velocidades de espejo de carga más rápida de la carga del archivo host en caché * Base: Centos.espejo.neto.En * Extras: Centos.espejo.neto.En * Actualizaciones: Centos.espejo.neto.En el paquete 1: Make-3.82-21.El7.x86_64 ya instalado y última versión de resolución de dependencias-> Ejecución de verificación de transacciones ---> paquete GCC.x86_64 0: 4.8.5-4.El7 se instalará -> Dependencia del procesamiento: libgomp = 4.8.5-4.EL7 para el paquete: GCC-4.8.5-4.El7.x86_64 -> dependencia de procesamiento: cpp = 4.8.5-4.EL7 para el paquete: GCC-4.8.5-4.El7.X86_64 -> Dependencia de procesamiento: libgcc> = 4.8.5-4.EL7 para el paquete: GCC-4.8.5-4.El7.x86_64-> Dependencia de procesamiento: glibc-delvel> = 2.2.90-12 para paquete: GCC-4.8.5-4.El7.x86_64 -> Dependencia del procesamiento: libmpfr.entonces.4 () (64 bits) para paquete: GCC-4.8.5-4.El7.x86_64 -> Dependencia de procesamiento: libmpc.entonces.3 () (64 bits) para paquete: GCC-4.8.5-4.El7.x86_64 ---> paquete GCC-C++.x86_64 0: 4.8.5-4.El7 se instalará-> Dependencia de procesamiento: libstdc ++-desvel = 4.8.5-4.El7 para paquete: GCC-C ++-4.8.5-4.El7.X86_64 -> Dependencia de procesamiento: libstdc ++ = 4.8.5-4.El7 para paquete: GCC-C ++-4.8.5-4.El7.x86_64 ---> paquete OpenSSL-devel.x86_64 1: 1.0.1e-51.EL7_2.Se instalará 4-> Dependencia de procesamiento: OpenSSL-LIBS (x86-64) = 1: 1.0.1e-51.EL7_2.4 para el paquete: 1: OpenSSL-Devel-1.0.1e-51.EL7_2.4.X86_64-> Dependencia de procesamiento: Krb5-devel (x86-64) para paquete: 1: OpenSSL-Devel-1.0.1e-51.EL7_2.4.x86_64 ---> paquete pcre-devel.x86_64 0: 8.32-15.El7 se instalará-> Dependencia de procesamiento: PCRE (x86-64) = 8.32-15.EL7 para paquete: pcre-devel-8.32-15.El7.x86_64 ---> paquete zlib-devel.x86_64 0: 1.2.7-15.El7 se instalará -> Dependencia del procesamiento: ZLIB = 1.2.7-15.EL7 para el paquete: Zlib-Devel-1.2.7-15.El7.x86_64 .. 

2. Ahora vaya a la página oficial de Nginx y tome la última versión estable (nginx 1.10.0) Disponible usando wget Comando, extrae el archivo TAR e ingrese el directorio extraído Nginx, utilizando la siguiente secuencia de comandos.

# wget http: // nginx.org/descargar/nginx-1.10.0.alquitrán.GZ # TAR XFZ NGINX-1.10.0.alquitrán.GZ # CD NGINX-1.10.0/ # ls -LOl 
Descargar Nginx Source
--2016-03-21 09: 30: 15-- http: // nginx.org/descargar/nginx-1.10.0.alquitrán.GZ resolviendo nginx.org (nginx.org) ... 206.251.255.63, 95.211.80.227, 2001: 1AF8: 4060: A004: 21 :: E3 Conexión a Nginx.org (nginx.org) | 206.251.255.63 |: 80 ... conectado. Solicitud de HTTP enviada, en espera de respuesta ... 200 OK Longitud: 908954 (888k) [Aplicación/STREAM DE OCTET] Guardar a: 'Nginx-1.10.0.alquitrán.GZ '100%[================================================ ==================================================== ==================================================== ====>] 9,08,954 81.0KB/s en 11S 2016-03-21 09:30:27 (77.4 kb/s) - 'nginx -1.10.0.alquitrán.GZ 'guardado [908954/908954] 

3. El siguiente paso es personalizar el proceso de instalación de Nginx. Utilizar el configurar Archivo para visualizar las opciones de configuración y los módulos necesarios para su proceso de compilación utilizando el siguiente comando y asegúrese de estar en nginx-1.6.0/ camino.

# ./Configurar -Help 
Nginx configurar ayuda
-Ayuda a imprimir este mensaje--Prefix = Rath Set Installation Prefix--Sbin-Path = Rath Set Nginx Binary PathName--Modules-Path = ruta Conjunto de módulos de conjunto--Conf-Path = ruta establecida nginx.Conf PathName --RorRor-Log-Path = Rath Set Error de error REG PathName--Pid-Path = Path Set Nginx.PID PathName --lock-Path = Rath Set Nginx.Bloqueo PathName --User = Usuario Conjunto de usuario no privilegiado para procesos de trabajadores --group = grupo Establecer grupo no privilegiado para procesos de trabajadores--build = name set build name ---builddir = dir Director de compilación-with-select_module enableable Seleccione el módulo--without-select_module Disable Módulo Seleccionar-With-Poll_Module Enable Módulo de encuesta--Without-Poll_Module Disable Módulo de encuesta-With-Threads Enable Soporte de grupo de subprocesos-With-File-AIO Enable AIO SOPOR ipv6 enable compatibilidad con ipv6 --with-http_ssl_module enable ngx_http_ssl_module --with-http_v2_module enable ngx_http_v2_module .. 

4. Ahora es el momento de compilar NGINX con sus configuraciones específicas y módulos habilitados o deshabilitados. Para este tutorial, los siguientes módulos y especificaciones donde se usan, pero puede ajustar la compilación a cualquiera que se adapte a sus necesidades.

  1. -usuario = nginx -group = nginx => Usuario y grupo del sistema que Nginx ejecutará como.
  2. -prefijo =/etc/nginx => Directorio para archivos de servidor (NGINX.Archivo conf y otros archivos de configuración) - Directorio predeterminado es/usr/local/nginx.
  3. -sbin-path =/usr/sbin/nginx => Ubicación del archivo ejecutable NGINX.
  4. -Conf-Path =/etc/nginx/nginx.confusión => Establece el nombre de Nginx.Archivo de configuración de conf: puede cambiarlo.
  5. -Error-Log-Path =/var/log/nginx/error.registro => Establece la ubicación del archivo de registro de errores nginx.
  6. -http-log-path =/var/log/nginx/access.registro => Establece la ubicación del archivo de registro de acceso Nginx.
  7. -Pid-Path =/var/run/nginx.pid => Establece el nombre del archivo de ID de proceso principal.
  8. -Lock-Path =/var/run/nginx.cerrar => Establece el nombre del archivo de bloqueo Nginx.
  9. -con http_ssl_module => habilita la construcción del módulo HTTPS, no construido de forma predeterminada y requiere la biblioteca OpenSSL.
  10. -con pcre => Establece la ruta a las fuentes de la biblioteca PCRE, no construida de forma predeterminada y requiere la biblioteca PCRE.

Para ver una lista de todos los módulos NGINX, visite la página web de Wiki Nginx en http: // wiki.nginx.org/módulos.

Si no necesita un módulo específico instalado en NGINX, puede deshabilitarlo utilizando el siguiente comando.

--sin-module_name

Ahora comience a compilar NGINX emitiendo el siguiente comando, que utilizará todas las configuraciones y módulos discutidos anteriormente (Asegúrese de que el comando permanezca en una sola línea).

# ./configure --user = nginx --group = nginx--prefix =/etc/nginx --sbin-path =/usr/sbin/nginx --conf-path =/etc/nginx/nginx.Conf --Ror-Log-Path =/var/log/nginx/error.log --http-log-path =/var/log/nginx/access.log--pid-path =/var/run/nginx.PID --lock-Path =/var/run/nginx.bloqueo-with-http_ssl_module-with-pcre 
Configurar nginx con módulos
Comprobación de OS + Linux 3.10.0-229.El7.x86_64 x86_64 Verificación para el compilador C ... encontrado + usando el compilador GNU C + Versión GCC: 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC) Comprobación del interruptor de tubería de GCC ... revisado para -wl, -e interruptor ... verificación encontrada para las operaciones atómicas de GCC Builtin ... Comprobación de C99 Variadic Macros ... Se encontró comprobación de macros variádicos de GCC ... encontrado chequeo para GCC para GCC para GCC Byteswap de 64 bits Builtin ... encontrado para unistd.H ... encontrado verificando intitypes.H ... encontrado para los límites.H ... encontrado para el sys/filio.H ... no se encuentra verificación de sys/param.H ... Encontrado para el SYS/MONTO.H ... Encontrado para SYS/STATVFS.H ... encontrado para la cripta.H ... la verificación de las características específicas de Linux para Epoll ... la verificación encontrada para Epollrdhup ... la verificación de O_Path ... la verificación encontrada para sendFile () ... la verificación encontrada para sendFile64 () ... la verificación encontrada para sys/prctl.H ... la verificación encontrada para PrCTL (PR_SET_DUMPABLE) ... COMPROBACIÓN DE SECH_SETSEFFINITY () ... Se encontró verificación para crypto_r () ... Se encontró verificación de SYS/VFS.H ... Encontrado para la encuesta () ... encontrado comprobación de /dev /encuesta ... no encontrado .. 

5. Después de que el proceso de compilación verifica todas las utilidades requeridas por el sistema como el compilador GNU C, las bibliotecas PCRE y OpenSSL, crea el hacer.confusión Archivo y emite un resumen de todas las configuraciones.

Resumen de compilación Nginx
Resumen de configuración + Uso de System PCRE Biblioteca + Uso de la biblioteca OpenSSL OpenSSL + MD5: Uso de OpenSSL Biblioteca + SHA1: Uso de la biblioteca OpenSSL + Uso del prefijo de ruta nginx de la biblioteca del sistema: "/etc/nginx" nginx archivo binario: "/usr/sbin/nginx Ruta de módulos "Nginx:"/etc/nginx/módulos "prefijo de configuración nginx:"/etc/nginx "archivo de configuración nginx:"/etc/nginx/nginx.conf "Archivo Nginx PID:"/var/run/nginx.PID "Nginx Error Log File:"/var/log/nginx/error.Log "Archivo de registro de acceso de Nginx HTTP:"/var/log/nginx/access.log "Nginx Http Solicitud del cliente FILES TEMPORALES:" Client_body_temp "nginx http proxy archivos temporales:" proxy_temp "nginx http fastcgi archivos temporales:" fastcgi_temp "nginx http uWsgi archivos temporales:" uwsgi_temp "nginx hhgentpppppphp" tempry "tempe" scGiM "scGiTp" scGiM "scGiTphtp" scGiM "scGiTp" Temperéjar " 

6. El último paso es construir los binarios usando hacer comando, que puede tardar un tiempo en terminar según los recursos de su máquina e instalar Nginx en su sistema con hacer instalar dominio.

Ten cuidado con hacer la instalación requiere privilegios de raíz Para realizar la instalación, por lo que si no ha iniciado sesión con Root Cuenta, use un usuario de privilegios con sudo.

# hacer # hacer instalar 
Ejecutar nginx make command
make -f objs/makefile make [1]: ingresar directorio '/root/nginx -1.10.0 'make [1]: advertencia: src/nore/nginx de archivo.h 'tiene tiempo de modificación 3110036 s en el futuro cc -c -pipe -o -w -wall -wpointer -arith -wno -uno -parameter -werror -g -i src/core -i src/event -i src/event /módulos -i src/os/unix -i objs \ -o objs/src/core/nginx.o \ src/core/nginx.c cc -c -pipe -o -w -wall -wpointer -arith -wno -unused -parameter -werror -g -i src/core -i src/event -i src/event/modules -i src/os/unix -I objs \ -o objs/src/core/ngx_log.o \ src/core/ngx_log.c cc -c -pipe -o -w -wall -wpointer -arith -wno -unused -parameter -werror -g -i src/core -i src/event -i src/event/modules -i src/os/unix -I objs \ -o objs/src/core/ngx_palloc.o \ src/core/ngx_palloc.c cc -c -pipe -o -w -wall -wpointer -arith -wno -unused -parameter -werror -g -i src/core -i src/event -i src/event/modules -i src/os/unix -I objs \ -o objs/src/core/ngx_array.o \ src/core/ngx_array.c cc -c -pipe -o -w -wall -wpointer -arith -wno -unused -parameter -werror -g -i src/core -i src/event -i src/event/modules -i src/os/unix -I objs \ -o objs/src/core/ngx_list.o \ src/core/ngx_list.c cc -c -pipe -o -w -wall -wpointer -arith -wno -unused -parameter -werror -g -i src/core -i src/event -i src/event/modules -i src/os/unix -I objs \ -o objs/src/core/ngx_hash.o \ src/core/ngx_hash.c cc -c -pipe -o -w -wall -wpointer -arith -wno -unused -parameter -werror -g -i src/core -i src/event -i src/event/modules -i src/os/unix -I objs \ -o objs/src/core/ngx_buf.o \ src/core/ngx_buf.c cc -c -pipe -o -w -wall -wpointer -arith -wno -unused -parameter -werror -g -i src/core -i src/event -i src/event/modules -i src/os/unix -I objs \ -o objs/src/core/ngx_queue.O \… 
Ejecutar el comando Nginx Make Instalar
make -f objs/makefile install make [1]: entrante directorio '/root/nginx -1.10.0 'make [1]: advertencia: src/nore/nginx de archivo.h 'tiene tiempo de modificación 3109935 s en el futuro cc -c -pipe -o -w -wall -wpointer -arith -wno -uno -parameter -werror -g -i src/core -i src/event -i src/event /módulos -i src/os/unix -i objs \ -o objs/src/core/nginx.o \ src/core/nginx.c cc -c -pipe -o -w -wall -wpointer -arith -wno -unused -parameter -werror -g -i src/core -i src/event -i src/event/modules -i src/os/unix -I objs \ -o objs/src/core/ngx_log.o \ src/core/ngx_log.c cc -c -pipe -o -w -wall -wpointer -arith -wno -unused -parameter -werror -g -i src/core -i src/event -i src/event/modules -i src/os/unix -I objs \ -o objs/src/core/ngx_palloc.o \ src/core/ngx_palloc.c cc -c -pipe -o -w -wall -wpointer -arith -wno -unused -parameter -werror -g -i src/core -i src/event -i src/event/modules -i src/os/unix -I objs \ -o objs/src/core/ngx_array.o \ src/core/ngx_array.c cc -c -pipe -o -w -wall -wpointer -arith -wno -unused -parameter -werror -g -i src/core -i src/event -i src/event/modules -i src/os/unix -I objs \ -o objs/src/core/ngx_list.o \ src/core/ngx_list.c cc -c -pipe -o -w -wall -wpointer -arith -wno -unused -parameter -werror -g -i src/core -i src/event -i src/event/modules -i src/os/unix -I objs \ -o objs/src/core/ngx_hash.o \ src/core/ngx_hash.c cc -c -pipe -o -w -wall -wpointer -arith -wno -unused -parameter -werror -g -i src/core -i src/event -i src/event/modules -i src/os/unix -I objs \ -o objs/src/core/ngx_buf.o \ src/core/ngx_buf.c cc -c -pipe -o -w -wall -wpointer -arith -wno -unused -parameter -werror -g -i src/core -i src/event -i src/event/modules -i src/os/unix -I objs \ -o objs/src/core/ngx_queue.O \… 

Paso 2: ajustar nginx y crear script init

7. Después de que el proceso de instalación haya terminado con éxito, agregar nginx usuario del sistema (con /etc/nginx/ Como su directorio de inicio y sin shell válido), el usuario que Nginx ejecutará al emitir el siguiente comando.

# userAdd -d/etc/nginx/-s/sbin/nologin nginx 
Agregar usuario de Nginx

8. Porque en el proceso de compilación habíamos especificado que Nginx se ejecutará desde nginx Usuario del sistema, abierto nginx.confusión archivo y cambiar la declaración de usuario a nginx.

# nano/etc/nginx/nginx.confusión

Aquí localizar y cambiar el usuario y, también, documentar declaraciones de ubicación raíz, con las siguientes opciones.

usuario nginx; ubicación /root /srv /www /html; autoindex on; índice índice.índice HTML.htm;
Ejecutar nginx como usuario Habilitar nginx documentroot

9. Antes de iniciar NGINX, asegúrese de que haya creado la ruta de la raíz del documento web, luego inicie NGINX usando el siguiente comando.

# mkdir -p/srv/www/html #/usr/sbin/nginx

Si desea verificar si Nginx se está ejecutando con su indicador de shell, ejecute netstat comando para verificar las conexiones de escucha.

# netstat -tulpn | grep nginx
Crear nginx documentroot

10. Para verificarlo desde un sistema remoto, agregue una regla de firewall para abrir la conexión al exterior en el puerto 80, Abra un navegador y dirija la URL a la dirección IP de su servidor en http: // server_ip.

# firewall-cmd --add-service = http ## para la regla de entrada # firewall-cmd --permanent --add-service = http ## Para un gobierno permanente # SystemCTL reiniciar firewalld
Verificar la instalación de Nginx

11. Para administrar el proceso NGINX, use los siguientes comandos.

  1. nginx -v = Muestra módulos y configuraciones nginx
  2. nginx -h = Opciones de ayuda
  3. nginx = Inicio del proceso Nginx
  4. nginx -s parada = Detener el proceso Nginx
  5. nginx -s recarga = Recargar el proceso Nginx
# nginx -v 
Verifique la versión instalada de Nginx
Versión Nginx: Nginx/1.10.0 construido por GCC 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC) construido con OpenSSL 1.0.1e-Fips 11 de febrero de 2013 TLS SNI Soporte habilitado Configurar argumentos: --user = nginx --group = nginx--prefix =/etc/nginx --sbin-path =/usr/sbin/nginx --conf-path =////sbinx etc/nginx/nginx.Conf --Ror-Log-Path =/var/log/nginx/error.log --http-log-path =/var/log/nginx/access.log--pid-path =/var/run/nginx.PID --lock-Path =/var/run/nginx.bloqueo-with-http_ssl_module-with-pcre 

12. Si necesita administrar el proceso de demonio nginx a través de un en eso Script rhel/centos, cree el siguiente archivo nginx en /etc/init.d/ ruta del sistema y, entonces, puede usar servicio o systemctl comandos para administrar el proceso.

# nano /etc /init.d/nginx

Agregue el siguiente contenido del archivo.

#!/bin/sh # # nginx: este script inicia y detiene el nginx demonio # # chkconfig: - 85 15 # Descripción: Nginx es un servidor HTTP (s), http (s) reverso \ # proxy e imap/pop3 proxy # # ProcessName: Nginx # config:/etc/nginx/nginx.conf # pidfile:/var/run/nginx.PID # Usuario: Nginx # Biblioteca de funciones de origen ... /etc /rc.d/init.D/Funciones # Configuración de redes de origen .../etc/sysconfig/network # verifique que la red está arriba. ["$ Networking" = "no"] && exit 0 nginx = "/usr/sbin/nginx" prog = $ (Basename $ nginx) nginx_conf_file = "/etc/nginx/nginx.conf "LockFile =/var/run/nginx.bloquear start () [-x $ nginx] || Salir 5 [-f $ nginx_conf_file] || Salir 6 echo -n $ "iniciando $ prog:" Daemon $ nginx -c $ nginx_conf_file retval = $? echo [$ retval -eq 0] && touch $ lockfile return $ retval stop () echo -n $ "deteniendo $ prog:" killproc $ prog -quit retval = $? echo [$ retval -eq 0] && rm -f $ LockFile Return $ retval reinsart () configtest || devolver $? Stop Start reload () configtest || devolver $? echo -n $ "recarga $ prog:" killproc $ nginx -hup retval = $? echo force_reload () reiniciar configTest () $ nginx -t -c $ nginx_conf_file rh_status () status $ prog rh_status_q () rh_status>/dev/null 2> & 1 caso "$ 1" en inicio)) RH_STATUS_Q && EXIT 0 $ 1 ;; parar) rh_status_q || Salir 0 $ 1 ;; reiniciar | config) $ 1 ;; recargar) rh_status_q || salida 7 $ 1 ;; Force-Reload) Force_Reload ;; estado) rh_status ;; Condrestart | Try-Restart) rh_status_q || salida 0 ;; *) echo $ "uso: $ 0 inicio | parar | status | reiniciar | Condrestart | Try-Restart | Recarga | Force-Reload | ConfigTest" Salir 2 ESAC
Agregar script nginx init

13. Después de que se crea el archivo de init Nginx, Append Ejecucions permisos y administre el demonio utilizando las opciones de comando a continuación.

# chmod +x /etc /init.d/nginx # servicio nginx inicio | parar | reiniciar | recargar | force_reload | configtest | condrestart # systemctl inicio | parar | reiniciar nginx
Inicio del servidor Nginx

14. Si necesita habilitar el sistema Nginx en todo el sistema, use el siguiente comando para comenzar en el tiempo de arranque.

# chkconfig nginx on o # systemCtl habilitar nginx

Eso es todo! Ahora tiene la última versión de NGINX instalada en su sistema Rhel/Centos 7. En el próximo tutorial, discutiré cómo instalar y habilitar PhP-FPM Process Manager aunque Nginx Fastcgi Gateway.

Leer también: La guía final para asegurar, endurecer y mejorar el rendimiento del servidor web NGINX