使用nginx+lua+lua-baselib,加速cookie、token驗證

  對於目前的大部分網站或app來講,調用最頻繁的接口就是驗證登錄的狀態,也就是cookie或token校驗。php

使用nginx+lua+lua-baselib這種方案能極大地提升處理效率。在目前的測試中,一樣的環境下,這種方案對比nginx+php-fastcgi,QPS能提升八倍以上。nginx

      lua-baselib模塊新加入了openssl的加解密算法,考慮到openssl初始化的性能問題,默認只開啓了AES加密算法。AES算法安全程度和效率都很高,在加密cookie、token時建議使用這種加密方式。在baselib中使用openssl方式與php基本中一致,與php也能互相加解密。示例以下:git

在lua中調用:github

local baselib = require 'baselib'算法

str = '你好,世界'
method = 'AES-128-CBC'
secret_key = '123456'
padding = 'OPENSSL_RAW_DATA'--這裏是字符串
iv = '1234567890abcdef'安全

enc = baselib.openssl_encrypt(str, method, secret_key, padding, iv)
dec = baselib.openssl_decrypt(enc, method, secret_key, padding, iv)cookie

在php中調用:app

<?php
$str = '你好,世界';
$method = 'AES-128-CBC';
$secret_key = '123456';
$padding = OPENSSL_RAW_DATA;//這裏是常量
$iv = '1234567890abcdef';性能

$enc = openssl_encrypt($str, $method, $secret_key, $padding, $iv);
$dec = openssl_decrypt($enc, $method, $secret_key, $padding, $iv);測試

在生產環境中使用lua-baselib需開啓nginx中lua_code_cache配置項,能保證性能發揮到極致。

lua-baselib項目地址:https://github.com/dengqiang2015/lua-baselib 關於更多lua-baselib的介紹:https://my.oschina.net/u/554660/blog/1305310

相關文章
相關標籤/搜索