paint-brush
Potenciando el rendimiento de su API con proxypor@stdevk
353 lecturas
353 lecturas

Potenciando el rendimiento de su API con proxy

por ST Dev 5m2023/06/29
Read on Terminal Reader

Demasiado Largo; Para Leer

En resumen, mejorar el rendimiento de la API puede conducir a una mejor experiencia del usuario, una mayor productividad, una mejor escalabilidad, un ahorro de costos y una ventaja competitiva, lo que lo convierte en un objetivo deseable tanto para las empresas como para los desarrolladores. Por lo tanto, explicaremos la arquitectura básica de la puerta de enlace API, cómo configurar Proxy para enrutar servicios RPC con Nginx y discutiremos las ventajas y desventajas de hacerlo.
featured image - Potenciando el rendimiento de su API con proxy
ST Dev  HackerNoon profile picture
0-item
1-item
2-item

Hay varias razones convincentes por las que las personas podrían querer mejorar el rendimiento de la API:

  1. Experiencia de usuario mejorada: las API más rápidas y con mayor capacidad de respuesta pueden proporcionar una experiencia de usuario más fluida para los clientes o usuarios finales. El rendimiento mejorado puede resultar en una latencia reducida, tiempos de respuesta más rápidos y una recuperación de datos más rápida, lo que lleva a una experiencia de usuario más eficiente y satisfactoria.
  2. Escalabilidad mejorada: los servidores de alto rendimiento pueden manejar una mayor cantidad de solicitudes y usuarios simultáneos, lo que los hace más escalables. La escalabilidad es crucial para las empresas en crecimiento que necesitan manejar cantidades cada vez mayores de tráfico y datos a medida que se expande su base de usuarios. El rendimiento mejorado de la API puede ayudar a las empresas a satisfacer las crecientes demandas sin comprometer los tiempos de respuesta o la calidad del servicio.
  3. Ventaja competitiva: las API de alto rendimiento pueden brindar a las empresas una ventaja competitiva. Los usuarios o clientes tienden a preferir servicios que ofrecen tiempos de respuesta más rápidos, mejor confiabilidad y un rendimiento general superior. Al brindar una experiencia API superior, las empresas pueden diferenciarse de la competencia y atraer a más usuarios o clientes.

Tutorial Objetivo de aprendizaje

Configuraremos un Proxy como un sistema de administración central para lograr un mejor rendimiento de la API. Un proxy actúa como intermediario entre clientes y servidores. Se encuentra entre el cliente que realiza las solicitudes de API y el servidor que aloja las API. Cuando un cliente realiza una solicitud de API, primero pasa por el proxy, que luego reenvía la solicitud al servidor. El servidor procesa la solicitud y envía la respuesta al proxy, que luego la reenvía al cliente. Esto permite que el proxy intercepte, modifique o almacene en caché la solicitud o la respuesta según sea necesario, lo que brinda oportunidades para optimizar el rendimiento de la API.

Requisito previo

Para macOS (o Linux ), instale Homebrew en su sistema.

Instalación de Nginx en Mac

Hay los siguientes pasos para instalar Nginx en macOS:


1️⃣ Descarga Homebrew

Para instalar Nginx en macOS, Homebrew debe estar instalado en el sistema. Homebrew es un administrador de paquetes para el sistema operativo Mac que nos permite instalar varias aplicaciones Unix fácilmente. Si no tiene Homebrew , use el siguiente enlace para instalar: https://brew.sh/

O simplemente escriba el siguiente comando en la terminal:

 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"


2️⃣ Instalar Nginx

El instalador del paquete homebrew ayudará a instalar el servidor web Nginx en macOS. Para instalar Nginx , use el siguiente comando:

 brew install nginx


3️⃣ Editar archivo de configuración

De forma predeterminada, la ubicación del archivo de configuración de Nginx es:

 /opt/homebrew/etc/nginx/nginx.conf

Para editar el archivo de configuración de Nginx, puede usar cualquier editor de texto de su elección. Por ejemplo, puede usar nano , vim o emacs . Aquí hay un comando de ejemplo para editar el archivo de configuración de Nginx usando nano:

 nano /opt/homebrew/etc/nginx/nginx.conf

Estaremos editando el bloque del servidor que escucha en el puerto 80.

Buscar bloque de servidor


Posteriormente, proceda a incluir los tres puntos finales RPC de la red principal de Ethereum a continuación:

 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"; }

Es posible incluir varios extremos de RPC según sea necesario y, posteriormente, conservar el archivo de configuración.

Para garantizar la ausencia de errores de sintaxis, proceda amablemente con la prueba del archivo de configuración de Nginx:

 nginx -t

🎊 En caso de que no haya errores presentes, se mostrará el siguiente resultado.


nginx: la sintaxis del archivo de configuración /opt/homebrew/etc/nginx/nginx.conf está bien

nginx: archivo de configuración /opt/homebrew/etc/nginx/nginx.conf prueba exitosa

Para reiniciar el servidor Nginx, ejecute el siguiente comando:

 brew services restart nginx


4️⃣ Método de envío de API a través de Nginx Proxy

Para probar el Nginx Proxy, estamos verificando el precio del gas en Ethereum a través de eth_gasPrice . Enviaremos un comando curl para enviar una solicitud HTTP POST a la ubicación "/nodereal" de un servidor que se ejecuta en la máquina local (en " http://localhost ") con una carga JSON que se muestra a continuación:

 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"}

La respuesta que recibió después de ejecutar el comando curl es una respuesta JSON-RPC de un nodo Ethereum . He aquí una breve explicación de la respuesta:

  • "jsonrpc":"2.0": este campo indica la versión del protocolo JSON-RPC utilizado en la respuesta.
  • "id":1: Este campo es el identificador de la solicitud a la que corresponde esta respuesta. En este caso, la solicitud tenía un "id" de 1. "resultado": "0xdec36a8d1": este campo es el resultado de la solicitud JSON-RPC. En este caso, el resultado solicitado fue el precio actual del gas en la red Ethereum , que se devuelve en formato hexadecimal como una cadena.

Para interpretar el valor decimal de "0xdec36a8d1"

El valor decimal de "0xdec36a8d1" es 59797579985. Por lo tanto, el precio actual del gas en la red Ethereum en el momento en que se realizó la solicitud era 59797579985 wei (la denominación más pequeña de Ether) o 58 Gwei.

Pruébelo con los servidores restantes, /RPCProviderA y /RPCProviderB, ejecutándolo en la máquina local (en " http://localhost "):

 curl -X POST --data '{"jsonrpc":"2.0","method":"eth_gasPrice","params":[],"id":1}' -H "Content-Type: application/json" http://localhost/RPCProviderA


🥳 Puede comenzar la prueba de su propio proxy.


Ventajas y desventajas de usar Nginx como proxy para API Gateway


Ventajas de usar Nginx como proxy para una puerta de enlace API:

  1. Equilibrio de carga: Nginx puede distribuir las solicitudes de API entrantes en varios servidores backend, lo que garantiza un equilibrio de carga eficiente y un rendimiento mejorado.
  2. Almacenamiento en caché: Nginx puede almacenar en caché las respuestas de la API, lo que reduce la carga en los servidores backend y mejora los tiempos de respuesta de la API.
  3. Escalabilidad: Nginx puede escalar horizontalmente fácilmente para acomodar un mayor tráfico de API y manejar una gran cantidad de conexiones simultáneas.
  4. Seguridad: Nginx proporciona varias funciones de seguridad, como terminación SSL, protección DDoS y filtrado de solicitudes, que ayudan a proteger la API de las amenazas de seguridad.


Desventajas de usar Nginx como proxy para una puerta de enlace API:

  1. Funciones limitadas de administración de API: Nginx actúa principalmente como un proxy y carece de algunas funciones avanzadas de administración de API, como la documentación de API, el portal para desarrolladores y el control de versiones de API, que pueden ser necesarios en ecosistemas de API complejos.
  2. Complejidad de la configuración: configurar Nginx como una puerta de enlace API requiere una buena comprensión de la configuración de Nginx, que puede ser compleja para los usuarios que no están familiarizados con Nginx.
  3. Falta de autenticación y autorización avanzadas: Nginx proporciona funciones básicas de autenticación y autorización, pero es posible que no tenga capacidades avanzadas, como OAuth, validación de JWT y control de acceso detallado, que pueden ser necesarios en algunos escenarios de API.

Conclusión

En conclusión, mejorar el rendimiento de la API es fundamental para las empresas y los desarrolladores. El uso de Nginx como proxy para la puerta de enlace API ofrece ventajas como equilibrio de carga, almacenamiento en caché, escalabilidad y seguridad. Sin embargo, existen limitaciones, como funciones de administración de API limitadas, complejidad de configuración y falta de capacidades avanzadas de autenticación y autorización. La consideración cuidadosa de estos pros y contras es esencial. En general, aprovechar Nginx como proxy puede ser una herramienta poderosa para mejorar el rendimiento de la API. Estén atentos a la próxima serie de tutoriales, ya que compartiremos más sobre el problema común que enfrenta y cómo solucionarlo.


También publicado aquí .