Existem vários motivos convincentes pelos quais as pessoas podem querer melhorar o desempenho da API:
Estaremos configurando um Proxy como um sistema de gerenciamento central para obter um melhor desempenho da API. Um proxy atua como um intermediário entre clientes e servidores. Ele fica entre o cliente que faz solicitações de API e o servidor que hospeda as APIs. Quando um cliente faz uma solicitação de API, ele passa primeiro pelo proxy, que encaminha a solicitação ao servidor. O servidor processa a solicitação e envia a resposta de volta ao proxy, que a encaminha ao cliente. Isso permite que o proxy intercepte, modifique ou armazene em cache a solicitação ou resposta conforme necessário, oferecendo oportunidades para otimizar o desempenho da API.
Para macOS (ou Linux ), instale o Homebrew em seu sistema.
Existem as seguintes etapas para instalar o Nginx no macOS:
1️⃣ Baixe o Homebrew
Para instalar o Nginx no macOS, o Homebrew deve estar instalado no sistema. Homebrew é um gerenciador de pacotes para o sistema operacional Mac que nos permite instalar facilmente vários aplicativos Unix. Se você não tiver o Homebrew , use o seguinte link para instalar: https://brew.sh/
Ou simplesmente digite o seguinte comando no terminal:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
2️⃣ Instale o Nginx
O instalador do pacote homebrew ajudará a instalar o servidor web Nginx no macOS. Para instalar o Nginx , use o seguinte comando:
brew install nginx
3️⃣ Editar arquivo de configuração
Por padrão, a localização do arquivo de configuração do Nginx é:
/opt/homebrew/etc/nginx/nginx.conf
Para editar o arquivo de configuração Nginx, você pode usar qualquer editor de texto de sua escolha. Por exemplo, você pode usar nano , vim ou emacs . Aqui está um exemplo de comando para editar o arquivo de configuração do Nginx usando o nano:
nano /opt/homebrew/etc/nginx/nginx.conf
Estaremos editando o bloco do servidor que escuta na porta 80.
Pesquisar bloco de servidor
Posteriormente, inclua os três endpoints RPC da rede principal Ethereum abaixo:
location /nodereal { proxy_pass https://eth-mainnet.nodereal.io/v1/<API KEY>; proxy_set_header Content-Type "application/json"; } location /RPCProviderA { proxy_pass <https URI endpoint>; proxy_set_header Content-Type "application/json"; } location /RPCProviderB { proxy_pass <https URI endpoint>; proxy_set_header Content-Type "application/json"; }
É possível incluir vários endpoints RPC conforme necessário e subsequentemente preservar o arquivo de configuração.
Para garantir a ausência de erros de sintaxe, prossiga com o teste do arquivo de configuração do Nginx:
nginx -t
🎊 Caso não haja erros, o seguinte resultado será exibido.
nginx: a sintaxe do arquivo de configuração /opt/homebrew/etc/nginx/nginx.conf está ok
nginx: arquivo de configuração /opt/homebrew/etc/nginx/nginx.conf teste foi bem-sucedido
Para reiniciar o servidor Nginx, execute o seguinte comando:
brew services restart nginx
4️⃣ Envio do método API via Nginx Proxy
Para testar o Nginx Proxy, estamos verificando o preço do gás no Ethereum via eth_gasPrice . Estaremos enviando um comando curl para enviar uma solicitação HTTP POST para o local "/nodereal" de um servidor em execução na máquina local (em " http://localhost ") com uma carga JSON vista abaixo:
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_gasPrice","params":[],"id":1}' -H "Content-Type: application/json" http://localhost/nodereal
✅ {"jsonrpc":"2.0","id":1,"resultado":"0xdec36a8d1"}
A resposta que você recebeu após executar o comando curl é uma resposta JSON-RPC de um nó Ethereum . Aqui está uma breve explicação da resposta:
O valor decimal de "0xdec36a8d1" é 59797579985. Portanto, o preço atual do gás na rede Ethereum no momento em que a solicitação foi feita era 59797579985 wei (a menor denominação de Ether) ou 58 Gwei.
Teste-o com os servidores restantes, /RPCProviderA & /RPCProviderB, executando na máquina local (em " http://localhost "):
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_gasPrice","params":[],"id":1}' -H "Content-Type: application/json" http://localhost/RPCProviderA
🥳 Você pode iniciar o teste de seu próprio proxy.
✅ Vantagens de usar o Nginx como proxy para um gateway de API:
❌ Desvantagens de usar o Nginx como proxy para um gateway de API:
Concluindo, melhorar o desempenho da API é crucial para empresas e desenvolvedores. O uso do Nginx como um proxy para gateway de API oferece vantagens como balanceamento de carga, cache, escalabilidade e segurança. No entanto, existem limitações, como recursos limitados de gerenciamento de API, complexidade de configuração e falta de recursos avançados de autenticação e autorização. A consideração cuidadosa desses prós e contras é essencial. No geral, aproveitar o Nginx como um proxy pode ser uma ferramenta poderosa para melhorar o desempenho da API. Fique atento à próxima série de tutoriais, pois compartilharemos mais sobre o problema comum enfrentado e como depurá-lo.
Publicado também aqui .