centos7+nginx支持lua模块+OpenResty
创始人
2024-06-03 00:56:54
0

前言

不要使用nginx添加 lua 模块进行编译安装!
nginx 中添加 lua 模块,支持lua脚本以及遇到的坑
比如添加一个lua-resty-jwt令牌校验工具,你需要重新与ngnix进行整合,上面文章只是ngnix和lua的整合
推荐使用OpenResty

安装OpenResty

OpenResty官网
推荐使用官方预编译包安装(发布在yum上面的包)
在这里插入图片描述

添加yum仓库

# add the yum repo:
wget https://openresty.org/package/centos/openresty.repo
sudo mv openresty.repo /etc/yum.repos.d/
# update the yum index:
sudo yum check-update

安装opm

安装openresty的包管理工具opm,非常重要,后续通过opm方式下载需要lua所需的工具包

 yum install openresty-opm

OpenResty和Ngnix使用是一样的


# 查看版本和安装的模块
/usr/local/openresty/nginx/sbin/nginx -V
#检查配置
/usr/local/openresty/nginx/sbin/nginx -t
#启动
/usr/local/openresty/nginx/sbin/nginx
#重新加载配置
/usr/local/openresty/nginx/sbin/nginx -s reload
#停止
/usr/local/openresty/nginx/sbin/nginx -s stop

在ngnix执行lua,校验安装成功

    server {listen 8080;location / {default_type text/html;content_by_lua_block {ngx.say("

hello, world

")}}}

lua jwt校验

使用opm安装jwt工具

opm get SkyLothar/lua-resty-jwt

运行lua-resty-jwt示例

lua-resty-jwt官方地址


#user  nobody;
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '#                  '$status $body_bytes_sent "$http_referer" '#                  '"$http_user_agent" "$http_x_forwarded_for"';#access_log  logs/access.log  main;sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;#gzip  on;#    server {
#        listen       80;
#        server_name  localhost;
#
#        #charset koi8-r;
#
#        #access_log  logs/host.access.log  main;
#
#        location / {
#            root   html;
#            index  index.html index.htm;
#        }
#
#        #error_page  404              /404.html;
#
#        # redirect server error pages to the static page /50x.html
#        #
#        error_page   500 502 503 504  /50x.html;
#        location = /50x.html {
#            root   html;
#        }
#
#        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
#        #
#        #location ~ \.php$ {
#        #    proxy_pass   http://127.0.0.1;
#        #}
#
#        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#        #
#        #location ~ \.php$ {
#        #    root           html;
#        #    fastcgi_pass   127.0.0.1:9000;
#        #    fastcgi_index  index.php;
#        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
#        #    include        fastcgi_params;
#        #}
#
#        # deny access to .htaccess files, if Apache's document root
#        # concurs with nginx's one
#        #
#        #location ~ /\.ht {
#        #    deny  all;
#        #}
#    }# another virtual host using mix of IP-, name-, and port-based configuration##server {#    listen       8000;#    listen       somename:8080;#    server_name  somename  alias  another.alias;#    location / {#        root   html;#        index  index.html index.htm;#    }#}# HTTPS server##server {#    listen       443 ssl;#    server_name  localhost;#    ssl_certificate      cert.pem;#    ssl_certificate_key  cert.key;#    ssl_session_cache    shared:SSL:1m;#    ssl_session_timeout  5m;#    ssl_ciphers  HIGH:!aNULL:!MD5;#    ssl_prefer_server_ciphers  on;#    location / {#        root   html;#        index  index.html index.htm;#    }#}server {listen 8080;location / {default_type text/html;content_by_lua_block {ngx.say("

hello, world

")}}}server {default_type text/plain;listen 8082;location = /verify {content_by_lua_block {local cjson = require("cjson")local jwt = require("resty.jwt")local jwt_token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9" ..".eyJmb28iOiJiYXIifQ" ..".VAoRL1IU0nOguxURF2ZcKR0SGKE1gCbqwyh8u2MLAyY"local jwt_obj = jwt:verify("lua-resty-jwt", jwt_token)ngx.say(cjson.encode(jwt_obj))}}location = /sign {content_by_lua_block {local cjson = require("cjson")local jwt = require("resty.jwt")local jwt_token = jwt:sign("lua-resty-jwt",{header={typ="JWT", alg="HS256"},payload={foo="bar"}})ngx.say(jwt_token)}} }}

相关内容

热门资讯

热点推荐“益乐绍兴麻将到底有没... 热点推荐“益乐绍兴麻将到底有没有透视挂吗”原来真的有挂一、益乐绍兴麻将AI软件牌型概率发牌机制”必胜...
热点推荐“欢乐掌心麻将到底有没... 您好:欢乐掌心麻将确实真的有挂,软件加微信【7198902】确实是有挂的,很多玩家在这款游戏中打牌都...
热点推荐“大宝江苏麻将到底有没... 亲,大宝江苏麻将这款游戏可以开挂的,确实是有挂的,。但是开挂要下载第三方辅助软件,大宝江苏麻将的开挂...
热点推荐“天天温岭麻将到底有没... 您好,天天温岭麻将这款游戏可以开挂的,确实是有挂的,需要了解加微{7198902}很多玩家在这款游戏...
热点推荐“泽兴手游到底有没有透... 泽兴手游这个游戏其实有挂的,确实是有挂的,需要了解加客服微信:【7198902】, 很多玩家在这款游...
热点推荐“欢聚竞技到底有没有透... 您好:欢聚竞技确实真的有挂,软件加微信【7198902】确实是有挂的,很多玩家在这款游戏中打牌都会发...
热点推荐“四喜到底有没有透视挂... 您好,四喜这款游戏可以开挂的,确实是有挂的,需要了解加微{7198902}很多玩家在这款游戏中打牌都...
热点推荐“碧海麻将到底有没有透... 热点推荐“碧海麻将到底有没有透视挂吗”原来真的有挂1、让任何用户在无需AI插件第三方神器的情况下就能...
热点推荐“c7娱乐到底有没有透... 热点推荐“c7娱乐到底有没有透视挂吗”原来真的有挂是一款可以让一直输的玩家,快速成为一个“必胜”的a...
热点推荐“中兴国际到底有没有透... 您好,中兴国际这款游戏可以开挂的,确实是有挂的,需要了解加微{7198902}很多玩家在这款游戏中打...
热点推荐“JJ斗地主到底有没有... 您好,JJ斗地主这款游戏可以开挂的,确实是有挂的,需要了解加微{7198902}很多玩家在这款游戏中...
热点推荐“小唐乐家园到底有没有... 热点推荐“小唐乐家园到底有没有透视挂吗”原来真的有挂;原来确实真的有挂(需添加指定薇7198902获...
热点推荐“约游麻将到底有没有透... 热点推荐“约游麻将到底有没有透视挂吗”原来真的有挂;原来确实真的有挂(需添加指定薇7198902获取...
热点推荐“三秦陕西麻将到底有没... 热点推荐“三秦陕西麻将到底有没有透视挂吗”原来真的有挂1、让任何用户在无需AI插件第三方神器的情况下...
热点推荐“豪门国际到底有没有透... 您好:豪门国际确实真的有挂,软件加微信【7198902】确实是有挂的,很多玩家在这款游戏中打牌都会发...
热点推荐“奇迹陕西棋牌到底有没... 热点推荐“奇迹陕西棋牌到底有没有透视挂吗”原来真的有挂1、让任何用户在无需AI插件第三方神器的情况下...
热点推荐“授权二厅到底有没有透... 亲,授权二厅这款游戏可以开挂的,确实是有挂的,。但是开挂要下载第三方辅助软件,授权二厅的开挂软件,名...
热点推荐“通用快三到底有没有透... 热点推荐“通用快三到底有没有透视挂吗”原来真的有挂;原来确实真的有挂(需添加指定薇7198902获取...
热点推荐“湖南快三到底有没有透... 热点推荐“湖南快三到底有没有透视挂吗”原来真的有挂1、让任何用户在无需AI插件第三方神器的情况下就能...
热点推荐“科学计算器到底有没有... 您好,科学计算器这款游戏可以开挂的,确实是有挂的,需要了解加微{7198902}很多玩家在这款游戏中...