openresty 使用cuid 类库生成短链接id
cuid 是一个不错的id 生成算发,类似的有shortid 、hashid
演示使用lua 包集成openresty 做测试
使用docker-compose 运行
dockerfile
FROM openresty/openresty:alpine-fat RUN apk add --no-cache curl perl RUN /usr/local/openresty/luajit/bin/luarocks install cuid EXPOSE 80 COPY nginx.conf usr/local/openresty/nginx/conf/
docker-compose file
version: "3" services: id: build: . image: dalongrong/cuid-openresty ports: - "8080:80"
nginx.conf
worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; gzip on; real_ip_header X-Forwarded-For; real_ip_recursive on; server { listen 80; server_name localhost; charset utf-8; location / { root html; index index.html index.htm; } location /id { default_type text/html; content_by_lua_block { local cuid = require("cuid") local id = cuid.generate ( ) local slug = cuid.slug ( ) ngx.say("<div> shortid "..slug.."</div>".."<div>long id"..id.."</div>") } } location /alert { default_type text/html; content_by_lua_block{ ngx.say([[<script>alert("error")</script>]]) } } location /ip { default_type text/html; content_by_lua_block{ ngx.say(ngx.var.remote_addr) } } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
构建&&运行
- 构建
docker-compose build
- 运行
docker-compose up -d
- 访问
open http://localhost:8080/id
- 效果