Requisitos de Sistema e Dependências
Antes de iniciar a compilação do Nginx, é fundamental preparar o ambiente CentOS 7 instalando as bibliotecas necessárias para o processamento de requisições HTTP, compressão e suporte a conexões seguras (SSL/TLS).
yum -y install gcc-c++ pcre-devel zlib-devel openssl-devel
Download e Extração do Código-Fonte
Trabalharemos com a versão estável 1.26.1. Recomenda-se realizar o download diretamente no diretório de fontes do sistema.
# Acessando o diretório de fontes
cd /usr/local/src
# Baixando o pacote compactado
wget http://nginx.org/download/nginx-1.26.1.tar.gz
# Extraindo os arquivos
tar -zxvf nginx-1.26.1.tar.gz
cd nginx-1.26.1
Compilação e Instalação Personalizada
Nesta etapa, definimos o diretório de instalação padrão através do parâmetro --prefix. Após a configuração, procedemos com a compilação dos binários.
# Definindo o diretório de destino
./configure --prefix=/usr/local/nginx
# Compilando e instalando os arquivos
make && make install
Configuração do Firewall (Firewalld)
Para permitir o tráfego web na porta padrão (80), é necessário atualizar as regras do firewall do CentOS.
# Liberando a porta 80 permanentemente
firewall-cmd --permanent --zone=public --add-port=80/tcp
# Aplicando as novas regras
firewall-cmd --reload
Caso prefira desativar o firewall completamente (apenas para ambeintes de desenvolvimento), utilize:
systemctl stop firewalld
systemctl disable firewalld
Gerenciamento Manual do Nginx
O binário principal está localizado no subdiretório sbin. Abaixo, os comandos fundamentais para controle do processo:
# Acessando a pasta de executáveis
cd /usr/local/nginx/sbin/
# Iniciar o servidor
./nginx
# Parada rápida
./nginx -s stop
# Encerramento gracioso (aguarda conexões ativas)
./nginx -s quit
# Recarregar configurações sem reiniciar o processo
./nginx -s reload
# Validar sintaxe do arquivo de configuração
./nginx -t
Configuração de Variáveis de Ambiente
Para executar o comando nginx de qualquer local no terminal sem digitar o caminho completo, adicione o caminho ao PATH do seu perfil de usuário.
# Editando o perfil do bash
echo 'export PATH=$PATH:/usr/local/nginx/sbin' >> ~/.bashrc
# Atualizando a sessão atual
source ~/.bashrc
Integração com Systemd para Automação
Para gerenciar o Nginx commo um serviço do sistema e permitir que ele inicie automaticamente após um reboot, devemos criar um arquivo de unidade systemd.
# Criando o arquivo de unidade
vi /usr/lib/systemd/system/nginx.service
Insira a seguinte configuração no arquivo:
[Unit]
Description=Servidor Web Nginx High Performance
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
Após salvar o arquivo, registre o novo serviço e habilite a inicialização automática:
# Recarregar lista de serviços
systemctl daemon-reload
# Habilitar e iniciar
systemctl enable nginx
systemctl start nginx
# Verificar status
systemctl status nginx