Instale e compilar “Nginx 1.10.0 ”(liberação estável) de fontes no RHEL/CENTOS 7.0

Instale e compilar “Nginx 1.10.0 ”(liberação estável) de fontes no RHEL/CENTOS 7.0

Nginx é o servidor da web em crescimento mais rápido hoje em servidores públicos voltados para a Internet devido ao seu modelo modular de código aberto gratuito, alto desempenho, estabilidade, arquivos de configurações simples, arquitetura assíncrona (orientada por eventos) e baixos recursos necessários para executar.

Requisitos

Para RHEL 7.0
  1. Instalação mínima de Rhel 7.0
  2. Assinatura ativa de redhat e repositórios no RHEL 7.0
Para o CentOS 7.0
  1. Instalação mínima do CentOS 7.0
Configurar endereço IP estático
  1. Defina o endereço IP estático no RHEL/CENTOS 7.0

Este tutorial o guiará sobre a instalação da mais recente versão estável de Nginx 1.10.0 na Red Hat Enterprise ou no CentOS 7 de fontes, porque os espelhos oficiais do RHEL/CENTOS 7 não fornecem um pacote binário. Se você deseja evitar a instalação de fontes, poderá adicionar o repositório NGINX oficial e instalar o pacote binário (as versões disponíveis são 1.9.x) com a ajuda do Yum Package Manager, como mostrado:

Para ativar o repositório oficial do Nginx para o RHEL/CENTOS 7, crie um arquivo /etc/yum.Repos.d/nginx.repo com o seguinte conteúdo:

[nginx] Nome = nginx repo Baseurl = http: // nginx.org/packages/mainline/CentOS/7/$ Basearch/gpgCheck = 0 habilitado = 1 

Substituir “Centos” com "Rhel", Dependendo da distribuição que você está usando e instale o NGINX com o Yum Package Manager, como mostrado:

# yum install nginx 

Importante: Observe que, seguindo acima, os repositórios oficiais do Nginx Yum fornecerão a versão mais antiga do Nginx, se você realmente deseja criar a versão mais recente do Nginx, então eu sugiro que você siga a instalação da fonte, como mostrado abaixo.

Usando fontes A compilação e instalação tem alguns benefícios, devido ao fato de você poder instalar a versão mais recente disponível, você pode ajustar a configuração do NGINX adicionando ou removendo módulos, alterar o caminho do sistema de instalação ou outras configurações importantes, em outras palavras, você tem um Controle completo sobre o processo de instalação.

Etapa 1: baixe, compilar e instalar nginx

1. Antes de iniciar o processo de compilação e instalação do Nginx, verifique se você tem Compilador C / C ++, PCRE (Expressões regulares compatíveis com Perl), Zlib Biblioteca de compressão e OpenSSL (Se você pretende executar o NXing com suporte SSL) Pacotes instalados em sua máquina emitindo o seguinte comando.

# yum -y install gcc gcc-c ++ make zlib-devel pcre-devel openSsl-devel 
Instale o compilador GCC e C ++
Plugins carregados: Velocidades de espelho de carregamento mais rápido do Mirror do arquivo host em cache * Base: CentOS.espelho.líquido.Em * extras: CentOS.espelho.líquido.Em * Atualizações: Centos.espelho.líquido.No pacote 1: Make-3.82-21.EL7.x86_64 já instalado e mais recente versão resolvendo dependências-> Execução de transações ---> pacote gcc.x86_64 0: 4.8.5-4.EL7 será instalado -> Processamento Dependência: libgomp = 4.8.5-4.EL7 para o pacote: GCC-4.8.5-4.EL7.x86_64 -> Dependência do processamento: cpp = 4.8.5-4.EL7 para o pacote: GCC-4.8.5-4.EL7.x86_64 -> Dependência do processamento: libgcc> = 4.8.5-4.EL7 para o pacote: GCC-4.8.5-4.EL7.x86_64-> Processamento Dependência: glibc-devel> = 2.2.90-12 para o pacote: GCC-4.8.5-4.EL7.x86_64 -> Dependência do processamento: libmpfr.então.4 () (64 bits) para o pacote: GCC-4.8.5-4.EL7.x86_64 -> Dependência do processamento: libmpc.então.3 () (64 bits) para o pacote: GCC-4.8.5-4.EL7.x86_64 ---> pacote gcc-c++.x86_64 0: 4.8.5-4.EL7 será instalado-> Processamento Dependência: libstdc ++-Devel = 4.8.5-4.EL7 para o pacote: GCC-C ++-4.8.5-4.EL7.x86_64 -> Dependência do processamento: libstdc ++ = 4.8.5-4.EL7 para o pacote: GCC-C ++-4.8.5-4.EL7.x86_64 ---> pacote OpenSSL-devel.x86_64 1: 1.0.1E-51.EL7_2.4 será instalado-> Dependência do processamento: OpenSSL-Libs (x86-64) = 1: 1.0.1E-51.EL7_2.4 para o pacote: 1: OpenSSL-devel-1.0.1E-51.EL7_2.4.x86_64-> Dependência do processamento: KRB5-DEVEL (X86-64) para o pacote: 1: OpenSSL-devel-1.0.1E-51.EL7_2.4.x86_64 ---> pacote pcre-devel.x86_64 0: 8.32-15.EL7 será instalado-> Processamento Dependência: PCRE (x86-64) = 8.32-15.EL7 para pacote: PCRE-DEVEL-8.32-15.EL7.x86_64 ---> pacote zlib-devel.x86_64 0: 1.2.7-15.EL7 será instalado -> Dependência do processamento: zlib = 1.2.7-15.El7 para o pacote: Zlib-devel-1.2.7-15.EL7.x86_64… 

2. Agora vá para a página oficial do nginx e pegue a mais recente versão estável (Nginx 1.10.0) disponível usando wget Comando, extraia o arquivo alcatrão e entre no diretório extraído do Nginx, usando a seguinte sequência de comandos.

# wget http: // nginx.org/download/nginx-1.10.0.alcatrão.gz # tar xfz nginx-1.10.0.alcatrão.gz # cd nginx-1.10.0/ # LS -Al 
Baixe a fonte nginx
--2016-03-21 09: 30: 15-- http: // nginx.org/download/nginx-1.10.0.alcatrão.Gz resolvendo nginx.org (nginx.org)… 206.251.255.63, 95.211.80.227, 2001: 1af8: 4060: a004: 21 :: e3 conectando -se a nginx.org (nginx.org) | 206.251.255.63 |: 80… conectado. Solicitação HTTP enviada, aguardando resposta… 200 OK Comprimento: 908954 (888k) [Aplicação/stream de octeto] Salvando para: 'Nginx-1.10.0.alcatrão.gz '100%[=============================================== =================================================== =================================================== ====>] 9,08,954 81.0kb/s em 11s 2016-03-21 09:30:27 (77.4 kb/s) - 'nginx -1.10.0.alcatrão.GZ 'salvo [908954/908954] 

3. A próxima etapa é personalizar o processo de instalação do nginx. Use o configure Arquivo para visualizar opções de configuração e módulos necessários para o seu processo de compilação usando o seguinte comando e verifique se você está no nginx-1.6.0/ caminho.

# ./Configurar - -Help 
Nginx Configure a ajuda
-Ajude a imprimir esta mensagem-PREFIX = PATH Set Instalation Prefix-SBIN-PATH = PATH Set Nginx Binisty Pathname--Modules-path = Path Set Modules Path--Conf-Path = Patch Set Nginx.ConftName-Error-Log-Path = Path Definir Erro Log Pathname-Pid-Path = Path Set Nginx.PID PATHNAME-Lock-path = Path Set Nginx.Lock PathName --User = Usuário Defina o usuário não privilegiado para processos de trabalhador --group = grupo de grupo não privilegiado para processos de trabalhador--build = nome definir nome de construção--builddir = diretório de construção de diretor ---with-select_module habilitado Selecione Módulo--Without-select_module Desative o módulo Selecionar-com módulo de pesquisa Ativar-com módulo de pesquisa de desativar o módulo de pesquisa de desativar o módulo de pesquisa-com suporta de threads de threads-com suporte de arquivo-com arquivo-aio-aio-com suporte de arquivo ----with- IPv6 Ativar suporte IPv6 ---with-http_ssl_module enable ngx_http_sssl_module ---with-http_v2_module enable ngx_http_v2_module… 

4. Agora é hora de compilar o Nginx com suas configurações específicas e módulos ativados ou desativados. Para este tutorial, os seguintes módulos e especificações foram usados, mas você pode ajustar a compilação para qualquer adequação às suas necessidades.

  1. -usuário = nginx -Group = nginx => Usuário e grupo do sistema que o Nginx será executado como.
  2. -prefixo =/etc/nginx => Diretório para arquivos de servidor (nginx.arquivo conf e outros arquivos de configuração) - Diretório IS/usr/local/nginx.
  3. -sbin-path =/usr/sbin/nginx => Localização do arquivo executável nginx.
  4. -confath =/etc/nginx/nginx.conf => Defina o nome para o nginx.Configuration File - você pode alterá -lo.
  5. -erro de log-path =/var/log/nginx/erro.registro => Define o localização do arquivo de log de erro nginx.
  6. -http-log-path =/var/log/nginx/acesso.registro => Define o local do arquivo de log de acesso nginx.
  7. -pid-path =/var/run/nginx.PID => Defina o nome para o arquivo de identificação do processo principal.
  8. -bloqueio =/var/run/nginx.trancar => Defina o nome para o arquivo de bloqueio nginx.
  9. -com http_sssl_module => Ativa a construção do módulo HTTPS - não construído por padrão e requer a biblioteca OpenSSL.
  10. -com pcre => Define o caminho para as fontes da biblioteca PCRE - não construída por padrão e requer biblioteca PCRE.

Para visualizar uma lista de todos os módulos nginx, visite a página da web nginx wiki em http: // wiki.nginx.org/módulos.

Se você não precisar de um módulo específico instalado no nginx, poderá desativá -lo usando o seguinte comando.

--sem module_name

Agora comece a compilar o nginx emitindo o seguinte comando, que usará todas as configurações e módulos discutidos acima (Verifique se o comando permanece em uma única linha).

# ./Configure --User = nginx --group = nginx--prefix =/etc/nginx--sbin-path =/usr/sbin/nginx ---conf-path =/etc/nginx/nginx.Conf-Error-Log-pat =/var/log/nginx/erro.log-http-log-pat =/var/log/nginx/acesso.log-pid-path =/var/run/nginx.PID-Lock-path =/var/run/nginx.LOCK--WITH-HTTP_SSL_MODULE ---WITH-PCRE 
Configure nginx com módulos
Verificando para OS + Linux 3.10.0-229.EL7.x86_64 x86_64 Verificando o compilador C… encontrado + usando o compilador GNU C + versão GCC: 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC) Verificando o interruptor GCC -pipe… Encontrado verificação para -wl, -e switch… encontrou verificação para operações atômicas construídas no GCC ... encontrou verificações para macros variados C99 ... Construído Byteswap de 64 bits… encontrado verificando para o Unistd.H… encontrado verificando os inttypes.H… encontrou verificando os limites.H… encontrado verificando para sys/filio.h ... não encontrado verificando para sys/param.H… encontrado verificando o SYS/MOUNT.H… encontrado verificando o SYS/statvfs.H… encontrado verificando a cripta.H… Encontrado verificação de recursos específicos do Linux para o Epoll… Encontrado verificando o epollrdhup… encontrado verificando O_PATH… encontrado verificando o sendfile ()… encontrado verificando o sendfile64 ()… encontrado verificando para sys/prctl.H… encontrado verificando o PRCTL (PR_SET_DUMPABLE)… Encontrado verificando para agendamento ()… encontrado verificando o Crypt_r ()… encontrado verificando o SYS/VFS.H… encontrou verificando a Poll ()… encontrou verificação de /dev /pesquisa… não encontrada… 

5. Após o processo de compilação verifica todos os utilitários do sistema, como compilador GNU C, bibliotecas PCRE e OpenSSL, ele cria o fazer.conf Arquivo e produz um resumo de todas as configurações.

Resumo da compilação Nginx
Resumo da configuração + Usando o sistema PCRE Library + usando o sistema OpenSSL Library + MD5: Usando a Biblioteca OpenSSL + SHA1: Usando a Biblioteca OpenSSL + Usando o FILHO BIBLIOTECA DE ZLIB SISTEME "Nginx Modules Path:"/etc/nginx/modules "Nginx Configuration Prefix:"/etc/nginx "Arquivo de configuração nginx:"/etc/nginx/nginx.Conf "nginx pid arquivo:"/var/run/nginx.Arquivo de log de erro nginx pid: "/var/log/nginx/erro.Log "Nginx HTTP Access Log Arquivo:"/var/log/nginx/acesso.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" 

6. O último passo é construir os binários usando fazer comando, que pode levar algum tempo para terminar, dependendo dos recursos da sua máquina, e instale o nginx no seu sistema com faça instalar comando.

Tenha cuidado para isso Faça a instalação requer privilégios de raiz Para executar a instalação; portanto, se você não estiver conectado à conta raiz, use um usuário de privilégio com sudo.

# faça # fazer instalar 
Run Nginx Make Command
make -f objs/makefile make [1]: inserir diretório '/root/nginx -1.10.0 'Make [1]: Aviso: arquivo' src/core/nginx.H 'tem tempo de modificação 3110036 S no futuro CC -C -pipe -o -w -wall -wpointer -arith -wno -unus -parameter -werror -g -i src/core -i src/event -i src/evento /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 -unus -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 -unus -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 -unus -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 -unus -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 -unus -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 -unus -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 -unus -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 \… 
Execute o comando nginx faça de instalação
make -f objs/makefile instale [1]: inserir diretório '/root/nginx -1.10.0 'Make [1]: Aviso: arquivo' src/core/nginx.H 'tem tempo de modificação 3109935 S no futuro cc -c -pipe -o -w -wall -wpointer -arith -wno -unus -parameter -werror -g -i src/core -i src/event -i src/evento /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 -unus -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 -unus -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 -unus -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 -unus -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 -unus -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 -unus -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 -unus -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 \… 

Etapa 2: Tweak nginx e crie script init

7. Depois que o processo de instalação terminou com o sucesso adicionar nginx usuário do sistema (com /etc/nginx/ Como seu diretório doméstico e sem shell válido), o usuário que o nginx será executado como emitindo o seguinte comando.

# useradd -d/etc/nginx/-s/sbin/nologin nginx 
Adicione o usuário nginx

8. Porque no processo de compilação, especificamos que o nginx será executado nginx Usuário do sistema, aberto nginx.conf Arquive e altere a declaração do usuário para nginx.

# nano/etc/nginx/nginx.conf

Aqui, localize e altere o usuário e, também, documente as instruções de localização root, com as seguintes opções.

usuário nginx; localização /root /srv /www /html; AutoIndex ligado; ÍNDICE ÍNDICE.Índice HTML.htm;
Execute o nginx como usuário Ativar Nginx Documentroot

9. Antes de iniciar o NGINX, assegure que você criou o caminho raiz do documento da web e inicie o nginx usando o seguinte comando.

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

Se você quiser verificar se o nginx está em execução usando seu prompt de shell, execute netstat comando para verificar as conexões de ouvir.

# netstat -tulpn | Grep nginx
Crie Nginx Documentroot

10. Para verificá -lo de um sistema remoto, adicione uma regra de firewall para abrir a conexão com o exterior na porta 80, Abra um navegador e o URL direto para o endereço IP do servidor em http: // server_ip.

# firewall-cmd --add-service = http ## para regra on-fly # firewall-cmd --permanent --add-service = http ## Para regra permanente # SystemCtl reinicie o firewalld
Verifique a instalação do Nginx

11. Para gerenciar o processo Nginx, use os seguintes comandos.

  1. nginx -v = exibe módulos e configurações Nginx
  2. nginx -h = opções de ajuda
  3. nginx = Iniciar o processo nginx
  4. Nginx -s Pare = Stop nginx Process
  5. Nginx -s Recarregar = Recarregar o processo nginx
# nginx -v 
Verifique a versão instalada do nginx
Versão nginx: nginx/1.10.0 construído por GCC 4.8.5 20150623 (Red Hat 4.8.5-4) (GCC) construído com OpenSSL 1.0.1e-fips 11 de fevereiro 2013 TLS SNI Suporte Ativado Configurar argumentos: --User = nginx --group = nginx--prefix =/etc/nginx--sbin-path =/usr/sbin/nginx ---conf-path =/ etc/nginx/nginx.Conf-Error-Log-pat =/var/log/nginx/erro.log-http-log-pat =/var/log/nginx/acesso.log-pid-path =/var/run/nginx.PID-Lock-path =/var/run/nginx.LOCK--WITH-HTTP_SSL_MODULE ---WITH-PCRE 

12. Se você precisar gerenciar o processo de daemon nginx através de um iniciar Script RHEL/CENTOS, Crie o seguinte arquivo nginx em /etc/init.d/ caminho do sistema e, então, você pode usar serviço ou SystemCtl comandos para gerenciar o processo.

# nano /etc /init.d/nginx

Adicione o seguinte conteúdo de arquivo.

#!/bin/sh # # nginx - Este script inicia e interrompe o daemon nginx # # chkconfig: - 85 15 # Descrição: nginx é um servidor http (s), http (s) reverso \ # proxy e imap/pop3 servidor de proxy # ProcessName: nginx # config:/etc/nginx/nginx.conf # pidfile:/var/run/nginx.PID # Usuário: Nginx # Função de origem Biblioteca… /etc /rc.d/init.D/Functions # Fonte Configuração de rede…/etc/sysconfig/rede # verifique se a rede está em alta. ["$ Networking" = "no"] && saída 0 nginx = "/usr/sbin/nginx" prog = $ (nome de base $ nginx) nginx_conf_file = "/etc/nginx/nginx.Conf "LockFile =/var/run/nginx.bloqueio start () [-x $ nginx] || saída 5 [-f $ nginx_conf_file] || saída 6 echo -n $ "Iniciando $ prog:" daemon $ nginx -c $ nginx_conf_file retval = $? echo [$ retval -eq 0] && touch $ LockFile Return $ retval stop () echo -n $ "Parando $ prog:" killproc $ prog -Quit retval = $? echo [$ retval -eq 0] && rm -f $ LockFile Return $ retVal restart () configtest || retornar $? Stop start Reload () configtest || retornar $? echo -n $ "Reloading $ prog:" killproc $ nginx -hup retval = $? echo force_reload () rendert configtest () $ nginx -t -c $ nginx_conf_file rh_status () status $ prog rh_status_q () rh_status>/dev/null 2> & 1 caso "$" $ "$" $ "$" $ "em rh_status>/dev/null 2> & 1 case" 1 " rh_status_q && Sair 0 $ 1 ;; pare) rh_status_q || saída 0 $ 1 ;; reiniciar | configtest) $ 1 ;; recarregar) rh_status_q || saída 7 $ 1 ;; Force-Reload) force_reload ;; status) rh_status ;; condrestart | try-resteart) rh_status_q || saída 0 ;; *) eco $ "Uso: $ 0 start | stop | status | reiniciar | condrestart | try-resteart | recaro |
Adicionar script Nginx init

13. Depois que o arquivo init Nginx é criado, anexar permissões de execuções e gerenciar o daemon usando as opções de comando abaixo.

# chmod +x /etc /init.d/nginx # Serviço nginx Iniciar | Parar | RESTART | Reload | Force_reload | ConfigTest | Condrestart # SystemCtl Iniciar | Stop | Reiniciar nginx
Inicie o servidor nginx

14. Se você precisar ativar o Nginx em todo.

# chkconfig nginx ou # systemctl Ativar nginx

Isso é tudo! Agora você tem a versão mais recente do Nginx instalada no seu sistema RHEL/CENTOS 7. No próximo tutorial, discutirei como instalar e ativar o PHP-FPM Process Manager, embora o Nginx Fastcgi Gateway.

Leia também: O guia final para proteger, endurecer e melhorar o desempenho do Nginx Web Server