人们想要提高 API 性能有几个令人信服的原因:
我们将设置一个代理作为中央管理系统,以提高 API 性能。代理充当客户端和服务器之间的中介。它位于发出 API 请求的客户端和托管 API 的服务器之间。当客户端发出 API 请求时,它首先通过代理,然后将请求转发到服务器。服务器处理请求并将响应发送回代理,然后代理将其转发给客户端。这允许代理根据需要拦截、修改或缓存请求或响应,从而提供优化 API 性能的机会。
对于macOS (或Linux ),请在系统上安装Homebrew 。
在 macOS 上安装 Nginx 的步骤如下:
1️⃣下载自制软件
要在 macOS 上安装 Nginx,必须在系统上安装Homebrew 。 Homebrew是Mac操作系统的包管理器,可以让我们轻松安装各种Unix应用程序。如果您没有Homebrew ,请使用以下链接进行安装: https://brew.sh/
或者只需在终端上输入以下命令:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
2️⃣安装Nginx
自制程序包安装程序将帮助在 macOS 上安装Nginx Web 服务器。要安装Nginx ,请使用以下命令:
brew install nginx
3️⃣编辑配置文件
默认情况下,Nginx 配置文件的位置是:
/opt/homebrew/etc/nginx/nginx.conf
要编辑 Nginx 配置文件,您可以使用您选择的任何文本编辑器。例如,您可以使用nano 、 vim或emacs 。以下是使用 nano 编辑 Nginx 配置文件的示例命令:
nano /opt/homebrew/etc/nginx/nginx.conf
我们将编辑侦听端口 80 的服务器块。
搜索服务器块
随后,继续包含以下三个以太坊主网 RPC 端点:
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"; }
可以根据需要包含多个 RPC 端点,然后保留配置文件。
为了确保不存在语法错误,请继续测试 Nginx 配置文件:
nginx -t
🎊 如果没有错误,将显示以下结果。
nginx:配置文件/opt/homebrew/etc/nginx/nginx.conf语法没问题
nginx:配置文件/opt/homebrew/etc/nginx/nginx.conf 测试成功
要重新启动 Nginx 服务器,请执行以下命令:
brew services restart nginx
4️⃣通过 Nginx 代理发送 API 方法
为了测试 Nginx 代理,我们通过eth_gasPrice检查以太坊上的 Gas 价格。我们将发送一个curl命令,将HTTP POST请求发送到本地计算机上运行的服务器的“/nodereal”位置(“ http://localhost ”),并使用如下所示的JSON负载:
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,"结果":"0xdec36a8d1"}
运行curl命令后收到的响应是来自以太坊节点的JSON-RPC响应。以下是响应的简要说明:
“0xdec36a8d1”的十进制值为 59797579985。因此,发出请求时以太坊网络上的当前 Gas 价格为 59797579985 wei(以太币的最小面额)或 58 Gwei。
通过在本地计算机(位于“ http://localhost ”)上运行,使用其余服务器 /RPCProviderA 和 /RPCProviderB 对其进行测试:
curl -X POST --data '{"jsonrpc":"2.0","method":"eth_gasPrice","params":[],"id":1}' -H "Content-Type: application/json" http://localhost/RPCProviderA
🥳 您可以开始测试您自己的代理。
✅使用 Nginx 作为 API 网关代理的优点:
❌使用 Nginx 作为 API 网关代理的缺点:
总之,提高 API 性能对于企业和开发人员至关重要。使用 Nginx 作为 API 网关的代理具有负载平衡、缓存、可扩展性和安全性等优势。但也存在 API 管理功能有限、配置复杂、缺乏高级认证和授权功能等限制。仔细考虑这些利弊至关重要。总的来说,利用 Nginx 作为代理可以成为提高 API 性能的强大工具。请继续关注下一个教程系列,因为我们将分享有关所面临的常见问题以及如何调试的更多信息。
也发布在这里。