之前直接用nginx+lua,实在麻烦,用openresty简单多了。更简单的是用docker实现openresty,参考链接:Docker 安装OpenResty,步骤如下:
1、拉取镜像:docker pull openresty/openresty
2、启动:docker run --name openresty
-p 80:80 -d openresty/openresty
3、创建宿主机目录(用于映射进docker):
mkdir -p /app/docker/openresty/conf mkdir -p /app/docker/openresty/html mkdir -p /app/docker/openresty/lua mkdir -p /app/docker/openresty/logs
4、拷贝容器中文件到宿主机目录
//拷贝nginx配置文件 docker cp openresty:/usr/local/openresty/nginx/conf/nginx.conf /app/docker/openresty/conf //拷贝lua库 docker cp openresty:/usr/local/openresty/lualib /app/docker/openresty/lua
5、删除容器,新建容器:
//删除容器 docker rm -f openresty //启动 docker run --name openresty \ -v /app/docker/openresty/conf/nginx.conf:/usr/local/openresty/nginx/conf/nginx.conf \ -v /app/docker/openresty/lua/:/usr/local/openresty/nginx/lua \ -v /ap/docker/openresty/lualib/:/usr/local/openresty/lualib \ -v /app/docker/openresty/html/:/usr/local/openresty/nginx/html \ -v /app/docker/openresty/logs/:/usr/local/openresty/nginx/logs \ -p 8080:80 -d openresty/openresty
6、配置容器:
# /app/docker/openresty/lua/test.lua ngx.say('{"id" : "10086", "name":"test"}')
# /app/docker/openresty/conf/nginx.conf http { server_tokens off; include mime.types; default_type application/octet-stream; underscores_in_headers on;#表示如果header name中包含下划线,则不忽略 sendfile on; #keepalive_timeout 0; keepalive_timeout 65; gzip on; #include /etc/nginx/conf.d/*.conf; #lua 模块 lua_package_path "/usr/local/openresty/lualib/?.lua;;"; #c模块 lua_package_cpath "/usr/local/openresty/lualib/?.so;;"; server { listen 80; server_name 127.0.0.1; location /test { # 默认的响应类型 default_type application/json; content_by_lua_file lua/test.lua; } location / { root html; index index.html index.htm; } } }
7、进入容器,删除default.conf。这个文件中有默认的80端口配置,会影响nginx.conf文件中的配置。参考链接中没有这个动作。
docker exec -it openresty/openresty /bin/bash rm /etc/nginx/default.conf
8、测试:
curl http://localhost:8080/test
{"id" : "10086", "name":"test"}
标签:openresty,lua,app,nginx,conf,docker From: https://www.cnblogs.com/badwood316/p/18194876