Como Configurar o NGINX no Mac para Testes

Você precisa testar o site que está desenvolvendo, mas só tem o seu Mac para trabalhar? Você não precisa construir um servidor separado ou máquina virtual apenas para testar seu site. Uma opção rápida é instalar o NGINX no Mac, e você terá um servidor web funcionando diretamente no seu computador.

Fique por perto e aprenda como instalar e configurar o NGINX no Mac. Você aprenderá algumas maneiras diferentes de instalar o NGINX, para que possa escolher o método que funciona para você. Você também aprenderá os itens de configuração básica para ajudá-lo a começar a testar.

Pré-requisitos

Este tutorial será uma demonstração prática. Se você quiser acompanhar, certifique-se de ter o seguinte:

Instalando o NGINX no Mac

Há dois métodos pelos quais você pode instalar o NGINX no Mac — compilando o código-fonte ou usando um gerenciador de pacotes. No entanto, um método de instalação não é melhor que o outro. A escolha do método dependerá de seus requisitos.

Nas seções a seguir, você aprenderá como realizar ambos os métodos de instalação do NGINX.

Método 1: Compilar e Instalar a partir do Código-Fonte

Compilar e instalar o NGINX a partir do código-fonte oferece a flexibilidade de incluir módulos ou patches de segurança em sua instalação do NGINX. Por exemplo, você pode compilar o NGINX para incluir o módulo de Protocolo de Mensagens em Tempo Real (RTMP) se estiver configurando um servidor de streaming.

A personalização requer mais etapas e inclui a instalação manual de dependências. Siga estas etapas para instalar o NGINX no Mac a partir do Código Fonte.

1. Abra um terminal no seu Mac.

2. Execute o comando abaixo para criar um diretório de trabalho sob a sua pasta home. Este diretório conterá todos os arquivos de origem necessários para a instalação do NGINX.

# Criar uma pasta de origem sob seu diretório home
mkdir ~/src && cd ~/src

3. Em seguida, execute os comandos abaixo para baixar (curl) e extrair (tar) a última versão das Expressões Regulares Compatíveis com Perl (PCRE). Os módulos Core e Rewrite do NGINX requerem PCRE. A última versão do PCRE no momento desta redação é 8.45.

# Baixar e extrair a fonte PCRE
curl -OL https://ftp.exim.org/pub/pcre/pcre-8.45.tar.gz
tar -xf pcre-8.45.tar.gz && rm pcre-8.45.tar.gz

4. Execute cada comando abaixo para baixar (curl) a fonte do OpenSSL para adicionar suporte SSL. Esta adição é um exemplo de personalização da construção do NGINX. A última versão do OpenSSL no momento desta redação é 1.1.1m.

# Baixar e extrair os arquivos de fonte do OpenSSL
curl -OL http://www.openssl.org/source/openssl-1.1.1m.tar.gz
tar -xf openssl-1.1.1m.tar.gz && rm openssl-1.1.1m.tar.gz

5. Após baixar os requisitos, execute os comandos abaixo para baixar (curl) e extrair (tar) o código-fonte do NGINX. A versão estável mais recente até o momento da redação é 1.20.2.

# Baixar e extrair os arquivos de código-fonte do NGINX
curl -OL http://nginx.org/download/nginx-1.20.2.tar.gz
tar -xf nginx-1.20.2.tar.gz && rm nginx-1.20.2.tar.gz
# Listar os arquivos/pastas no diretório de trabalho
ls -l

Neste ponto, você deve ter agora um total de três novos diretórios, conforme mostrado abaixo.

Listing the source folders

6. Agora, execute os comandos abaixo para compilar (make) e instalar o NGINX.

# Entrar na pasta de código-fonte do NGINX
cd nginx-1.20.2

# Criar a configuração do NGINX
## Parâmetros:
## --with-pcre=../pcre-8.45/ : Especifica a localização do código-fonte do PCRE
## --with-http_ssl_module : Ativa o suporte HTTPS
## --with-openssl=../openssl-1.1.1m/ : Especifica o código-fonte do OpenSSL. Necessário para o http_ssl_module
./configure --with-pcre=../pcre-8.45/ --with-http_ssl_module --with-openssl=../openssl-1.1.1m/

# Compilar o NGINX
make
# Instalar o NGINX
sudo make install

7. Em seguida, execute o comando abaixo para adicionar o caminho do NGINX ao $PATH do sistema, acrescentando o caminho completo /usr/local/nginx ao /etc/paths. Após este passo, você pode executar comandos nginx sem especificar o caminho completo.

# Adicione o NGINX ao arquivo /etc/paths
echo /usr/local/nginx/sbin | sudo tee -a /etc/paths

8. Saia do terminal pressionando CMD+Q e abra uma nova sessão do terminal para aplicar o novo $PATHS.

9. Execute o comando nginx abaixo para iniciar o NGINX, já que o servidor NGINX não inicia automaticamente após a instalação.

sudo nginx

10. Por último, confirme que o NGINX está em execução. Abra uma janela do navegador da web e insira o endereço HTTP://localhost. Você deverá ver a página de boas-vindas padrão do NGINX, como a mostrada abaixo.

A instalação do NGINX a partir da fonte define a porta de escuta padrão como 80.

Accessing the NGINX default web page

Como você instalou o NGINX no Mac a partir da fonte como root, precisará prefixar cada comando nginx com sudo daqui para frente.

Método 2: Instalando o NGINX usando o Homebrew

Instalar o NGINX com o Homebrew é mais conveniente e menos propenso a erros. Este método instala dependências automaticamente. Se você não precisa personalizar a instalação do NGINX, este método é a opção mais rápida e requer apenas um comando para instalar!

Para instalar o NGINX no Mac usando o Homebrew, siga estas etapas.

1. Abra uma nova sessão do terminal.

2. Execute o seguinte comando brew para instalar o NGINX.

brew install nginx

É possível instalar o NGINX como root com o Homebrew? – Não (não oficialmente). O comando de instalação do brew se recusa a ser executado com o prefixo sudo. Se você tentar, receberá a mensagem de erro abaixo.

“Er” ou: Executar o Homebrew como root é extremamente perigoso e não é mais suportado. Como o Homebrew não reduz os privilégios na instalação, você estaria dando a todos os scripts de compilação acesso total ao seu sistema.

3. Após a instalação, invoque o comando abaixo para iniciar o NGINX. Este comando executa o NGINX como um daemon em segundo plano.

Por padrão, o Homebrew instala o NGINX em /usr/local/Cellar/nginx/<version> e cria links simbólicos em /usr/local/opt/. O binário do nginx tem um link simbólico em /usr/local/bin e esta pasta já está incluída no $PATH.

nginx

Para executar o NGINX sem um serviço em segundo plano, execute o comando abaixo. Este comando emite uma diretiva global para NÃO executar o nginx como um daemon.

nginx -g “da” mon off;”

Você pode parar o NGINX pressionando CTRL+C no terminal neste modo.

4. Finalmente, invoque o comando curl abaixo para confirmar que o NGINX está em execução.

A instalação do NGINX via Homebrew define a porta de escuta padrão como 8080. Essa atribuição de porta padrão garante que você possa executar o nginx sem sudo.

curl HTTP://localhost:8080

Como você pode ver abaixo, o comando curl baixou a página padrão do NGINX, o que indica que o servidor está em execução.

Testing NGINX with curl

Configurando o NGINX para Testes

Até agora, você instalou o NGINX, mas ele ainda está operando nas configurações padrão. Existem algumas mudanças fundamentais que você pode considerar antes de começar a testar seu site.

Você deseja que o NGINX inicie automaticamente com a inicialização do computador? Onde você armazenará os arquivos para o site que está testando? Você deve manter a atribuição padrão da porta de escuta?

Esses são alguns dos itens que você precisará configurar após a instalação do NGINX, o qual você aprenderá a configurar nas seções a seguir.

As seções seguintes demonstram as etapas do arquivo de configuração do NGINX instalado pelo Homebrew, a menos que as instruções afirmem explicitamente o contrário.

Personalizando a porta de escuta do servidor

Dependendo do método de instalação, a porta de escuta padrão pode ser 80 ou 8080. A porta 8080 é tipicamente aceitável para testes e desenvolvimento. No entanto, você ainda pode querer alterar o número da porta em alguns casos, talvez devido a conflito com outros serviços ou simplesmente porque preferiria.

Independentemente do motivo, siga as etapas abaixo para alterar a porta de escuta padrão do NGINX.

1. Primeiro, execute o comando abaixo para enviar o sinal de parada (-s stop) e garantir que o NGINX não esteja em execução. nginx -s stop

nginx -s stop

2. Em seguida, execute o comando nginx abaixo para descobrir o caminho do arquivo de configuração do NGINX.

nginx -t

O resultado abaixo mostra que o arquivo de configuração está em /usr/local/etc/nginx/nginx.conf.

Testing the NGINX configuration file

3. Abra o arquivo de configuração no editor de texto de sua preferência, como o nano, conforme o exemplo abaixo.

nano /usr/local/etc/nginx/nginx.conf

4. Agora, localize a linha listen dentro do bloco server {}. Como você pode ver abaixo, o valor da porta de escuta é 8080.

NGINX listening port number

5. Altere o número da porta de listen para outro valor de porta único, como 9000, neste exemplo. Salve a alteração e saia do arquivo.

Changing the listening port number

6. Agora, execute novamente o comando nginx abaixo para iniciar o NGINX novamente.

nginx

7. Por fim, abra uma nova janela do navegador e navegue até HTTP://localhost:9000. O NGINX agora deve servir o site na porta 9000, como mostrado abaixo.

NGINX running on port 9000

Apontando para o Diretório Web de Desenvolvimento

Por padrão, a instalação do NGINX no Mac serve o diretório da web de /usr/share/nginx/html (Instalado do código-fonte) ou /usr/local/Cellar/nginx/<versão>/html (Instalado pelo Homebrew).

Mas e se os arquivos do seu site estiverem em outro lugar, talvez em outro disco? Não se preocupe. Siga as etapas abaixo para apontar o NGINX para o seu diretório de web de desenvolvimento.

1. Primeiro, execute os comandos abaixo para parar o NGINX e abrir o arquivo de configuração no editor de texto, como você fez na seção “Personalizando a Porta de Escuta do Servidor” (passos um a três).

# Pare o NGINX
nginx -s stop
# Execute o teste para encontrar o arquivo de configuração
nginx -t
# Abra o arquivo de configuração para edição
nano /usr/local/etc/nginx/nginx.conf

2. No editor de texto, procure pela linha que diz root html; dentro do bloco server {}.

The default web directory location

3. Edite o valor root e mude-o para sua pasta personalizada. Neste exemplo, o diretório da web está em /Volume/DevData/testweb. Salve as alterações e saia do editor.

O site de teste neste exemplo é um site estático chamado Dimensions baixado de HTML5 Up. Este site de exemplo é gratuito para baixar e usar, sujeito a A Licença Creative Commons Attribution 3.0.

Changing the default web directory location

4. Agora, inicie o servidor NGINX novamente.

nginx

5. Por último, navegue até o endereço HTTP://localhost:9000 usando seu navegador da web. O NGINX está agora servindo seu site de teste a partir do seu diretório web personalizado, como na captura de tela abaixo.

Testing if NGINX serves a custom web directory location

Ativando o Autostart do NGINX para uma Instalação Baseada em Fontes

O NGINX não inicia automaticamente por padrão, independentemente do método de instalação escolhido. Em desenvolvimento ou testes, o autostart do NGINX pode não ser um requisito. Mas se precisar, você pode configurar o NGINX para ser executado na inicialização usando o processo launchd.

Você pode habilitar o NGINX para iniciar automaticamente tanto para instalações baseadas em código-fonte quanto para instalações homebrew. No entanto, para esta demonstração, começaremos com a instalação baseada em código-fonte.

Para habilitar o NGINX para iniciar automaticamente em uma instalação baseada em código-fonte, siga estas etapas.

1. Execute o comando touch abaixo para criar um novo arquivo de Lista de Propriedades (PLIST) para o NGINX.

O local /Library/LaunchDaemons armazena os daemons globais que são executados em nome do root ou de um usuário especificado. O nome do arquivo pode ser qualquer coisa, mas seria útil se o nome do arquivo contivesse o nome do daemon que você está criando.

sudo touch /Library/LaunchDaemons/ata.nginx.plist

2. Agora, abra o arquivo PLIST para edição.

sudo nano /Library/LaunchDaemons/ata.nginx.plist

3. Copie o código abaixo e cole no editor de texto. Salve o arquivo e saia do editor.

Em resumo, o código abaixo define um daemon com o nome ata.nginx. O programa a ser executado é /usr/local/nginx/sbin/nginx e o valor RunAtLoad significa que o programa será executado durante a inicialização do computador.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Label</key>
        <string>ata.nginx</string>
				<key>Program</key>
				<string>/usr/local/nginx/sbin/nginx</string>
        <key>RunAtLoad</key>
        <true/>
</dict>
</plist>

4. Por fim, execute o comando launchctl abaixo para load o daemon. Este comando inicia o NGINX imediatamente. E a partir deste ponto, o NGINX iniciará automaticamente após cada reinicialização do computador.

sudo launchctl load -w /Library/LaunchDaemons/ata.nginx.plist

Suponha que você mude de ideia e prefira desativar a inicialização automática do NGINX, execute o comando abaixo. Este comando interrompe e desativa a inicialização automática do daemon NGINX.

sudo launchctl unload -w /Library/LaunchDaemons/ata.nginx.plist

Habilitando a Inicialização Automática do NGINX para uma Instalação Baseada no Homebrew

Ao contrário da instalação baseada em código-fonte, para a instalação do NGINX baseada no Homebrew, você só precisa executar um comando para habilitar ou desabilitar o comportamento de inicialização automática do NGINX. Não é conveniente?

Execute o comando abaixo para habilitar a inicialização automática do NGINX. O comando start inicia o NGINX imediatamente e o registra para iniciar no boot.

sudo brew services start nginx

Após executar o comando, você obterá uma saída semelhante à imagem abaixo.

Starting the NGNIX service

Para desativar o estado de inicialização automática do NGINX, execute o comando abaixo. Como você pode ver, a única parte do comando a ser alterada é de start para stop. Este comando também encerra o servidor NGINX imediatamente de forma graciosa.

sudo brew services stop nginx

Conclusão

Aí está! Configurar o NGINX no Mac é uma maneira infalível de ter um servidor web em funcionamento rapidamente para testes. Você tem opções de instalação com base nos requisitos de sua configuração, e personalizar suas configurações é rápido por meio de arquivos de configuração de texto simples – nenhuma ferramenta especial é necessária.

O NGINX não limita os testes e a execução a apenas um site. Você pode executar vários domínios e sites de desenvolvimento simultaneamente sem interferir entre si. Ou, se estiver se sentindo aventureiro, você pode executar o NGINX no Docker no Mac também!

Source:
https://adamtheautomator.com/nginx-on-mac/