內部伺服器之間介面通訊

php_yt發表於2022-11-20

在實際業務中,常有內部伺服器間介面通訊的情況,這涉及兩個方面:一、頻寬,二、安全。

一、內網傳輸

我們知道內網傳輸是不佔用伺服器頻寬的,而且也比外網傳輸快速,假如請求的介面地址是 https://api.xxx.com/userinfo,實現內網傳輸,編輯本機的 /etc/hosts 檔案

api.xxx.com 10.0.123.1 # 內網ip

二、安全

對於提供介面的一方 api.xxx.com,限制請求來源也比較簡單,金鑰 + ip 白名單。

以 laravel 示例,建立一箇中介軟體 App\Http\Middleware\Remind.php

public function handle($request, Closure $next)
{
  $key = $request->input('key', '');

  if (
    $key != 'abc'
    || !in_array($request->ip(), ['10.0.123.2'])
  ) {
    return response()->json([
      'code' => 403,
      'msg' => 'access error',
    ], 403);
  }

  return $next($request);
}
本作品採用《CC 協議》,轉載必須註明作者和本文連結
welcome come back

相關文章