Il existe plusieurs raisons impérieuses pour lesquelles les utilisateurs peuvent souhaiter améliorer les performances de l'API :
Nous allons configurer un proxy en tant que système de gestion central pour améliorer les performances de l'API. Un proxy agit comme un intermédiaire entre les clients et les serveurs. Il se situe entre le client effectuant les requêtes API et le serveur qui héberge les API. Lorsqu'un client fait une demande d'API, il passe d'abord par le proxy, qui transmet ensuite la demande au serveur. Le serveur traite la demande et renvoie la réponse au proxy, qui la transmet ensuite au client. Cela permet au proxy d'intercepter, de modifier ou de mettre en cache la demande ou la réponse selon les besoins, offrant ainsi des opportunités d'optimiser les performances de l'API.
Pour macOS (ou Linux ), installez Homebrew sur votre système.
Il y a les étapes suivantes pour installer le Nginx sur macOS :
1️⃣ Télécharger Homebrew
Pour installer le Nginx sur macOS, Homebrew doit être installé sur le système. Homebrew est un gestionnaire de paquets pour le système d'exploitation Mac qui nous permet d'installer facilement diverses applications Unix. Si vous n'avez pas Homebrew , utilisez le lien suivant pour l'installer : https://brew.sh/
Ou tapez simplement la commande suivante sur le terminal :
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
2️⃣ Installer Nginx
Le programme d'installation du package homebrew aidera à installer le serveur Web Nginx sur macOS. Pour installer le Nginx , utilisez la commande suivante :
brew install nginx
3️⃣ Modifier le fichier de configuration
Par défaut, l'emplacement du fichier de configuration Nginx est :
/opt/homebrew/etc/nginx/nginx.conf
Pour modifier le fichier de configuration Nginx, vous pouvez utiliser n'importe quel éditeur de texte de votre choix. Par exemple, vous pouvez utiliser nano , vim ou emacs . Voici un exemple de commande pour modifier le fichier de configuration Nginx à l'aide de nano :
nano /opt/homebrew/etc/nginx/nginx.conf
Nous allons modifier le bloc serveur qui écoute sur le port 80.
Rechercher un bloc de serveur
Ensuite, continuez à inclure les trois points de terminaison RPC du réseau principal Ethereum ci-dessous :
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"; }
Il est possible d'inclure plusieurs points de terminaison RPC si nécessaire et de conserver ensuite le fichier de configuration.
Pour vous assurer de l'absence d'erreurs de syntaxe, veuillez procéder au test du fichier de configuration Nginx :
nginx -t
🎊 Dans le cas où il n'y a pas d'erreurs présentes, le résultat suivant sera affiché.
nginx : la syntaxe du fichier de configuration /opt/homebrew/etc/nginx/nginx.conf est correcte
nginx : le test du fichier de configuration /opt/homebrew/etc/nginx/nginx.conf est réussi
Pour redémarrer le serveur Nginx, veuillez exécuter la commande suivante :
brew services restart nginx
4️⃣ Envoi de la méthode API via Nginx Proxy
Pour tester le proxy Nginx, nous vérifions le prix du gaz sur Ethereum via eth_gasPrice . Nous enverrons une commande curl pour envoyer une requête HTTP POST à l'emplacement "/nodereal" d'un serveur s'exécutant sur la machine locale (à " http://localhost ") avec une charge utile JSON vue ci-dessous :
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,"result":"0xdec36a8d1"}
La réponse que vous avez reçue après avoir exécuté la commande curl est une réponse JSON-RPC d'un nœud Ethereum . Voici une brève explication de la réponse :
La valeur décimale de "0xdec36a8d1" est 59797579985. Par conséquent, le prix actuel du gaz sur le réseau Ethereum au moment de la demande était de 59797579985 wei (la plus petite dénomination d'Ether) ou 58 Gwei.
Testez-le avec les serveurs restants, /RPCProviderA & /RPCProviderB, en l'exécutant sur la machine locale (sur " http://localhost ") :
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_gasPrice","params":[],"id":1}' -H "Content-Type: application/json" http://localhost/RPCProviderA
🥳 Vous pouvez commencer à tester votre propre proxy.
✅ Avantages d'utiliser Nginx comme proxy pour une passerelle API :
❌ Inconvénients d'utiliser Nginx comme proxy pour une passerelle API :
En conclusion, l'amélioration des performances des API est cruciale pour les entreprises et les développeurs. L'utilisation de Nginx comme proxy pour la passerelle API offre des avantages tels que l'équilibrage de charge, la mise en cache, l'évolutivité et la sécurité. Cependant, il existe des limitations telles que des fonctionnalités de gestion d'API limitées, la complexité de la configuration et le manque de capacités d'authentification et d'autorisation avancées. Un examen attentif de ces avantages et inconvénients est essentiel. Dans l'ensemble, l'utilisation de Nginx en tant que proxy peut être un outil puissant pour améliorer les performances de l'API. Restez à l'écoute pour la prochaine série de didacticiels, car nous partagerons plus d'informations sur le problème courant rencontré et sur la manière de le déboguer.
Également publié ici .