首页 > 系统相关 >openresty实现nginx+lua

openresty实现nginx+lua

时间:2024-05-15 22:53:09浏览次数:12  
标签:openresty lua app nginx conf docker

  之前直接用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

相关文章

  • Nginx配置允许跨域
    要在Nginx中配置允许跨域(Cross-OriginResourceSharing,CORS),你需要修改Nginx的配置文件(通常是nginx.conf或者某个包含在nginx.conf中的单独的配置文件)。下面是一个基本的例子,展示了如何在Nginx中设置CORS:打开你的Nginx配置文件。这通常是/etc/nginx/nginx.conf或者/etc/nginx......
  • Nginx的常用命令(启动重启停止等)
    Windows查看nginx的版本号:nginx-v启动nginx:startnginx快速停止或关闭nginx:nginx-sstop正常停止或关闭nginx:nginx-squit配置文件nginx.conf修改重装载命令:nginx-sreloadLinux进入nginx目录中cd/usr/local/nginx/sbin1、查看nginx版本号./nginx-v2、启......
  • nginx容器卷映射文件不生效
    问题:启动如下,当修改/data/nginx/conf/nginx.conf文件内容,执行dockerexec容器idnginx-sreload,登录容器里面查看是无法生效的,必须要重启容器才行dockerrun-d-p13700:13700\-v/data/www:/usr/local/nginx/html\-v/data/nginx/conf/nginx.conf:/usr/local/nginx/con......
  • Nginx配置https(证书)报错
    一、nginx配置问题nginx配置https的时候报错: nginx:[emerg]unknowndirective35+GAN"ssl"in/usr/local/nginx/conf/nginx.conf:28或者 nginx:[emerg]the"ssl"parameterrequiresngx_http_ssl_modulein/usr/loca....出现这个问题的时候可以检查一下是不是没有......
  • Docker 编译安装Nginx正向代理
    先记录一波正向代理#makebaseimage.FROMdebian:bookworm-20240423-slimASbaseLABELmaintainer="RocSun<[email protected]>"RUNrm-rf/etc/apt/sources.list.d/*\&&echo"">/etc/apt/sources.list\&&ech......
  • nginx实用入门
    下载并启动下载地址:http://nginx.org/en/download.html双击即可启动测试启动:http://localhost/部署网站添加该条配置即可server{listen8088;server_name名字;location/{root文件目录;indexindex.htmlindex.htm;}}关闭、开始、重启在cmd下操作,进......
  • k8s——configmap-secret-nginx实验
    简介configmapsecret一、实验环境二、实验描述三、实验1:步骤1.使用configmap投射到nginx.conf配置文件到pod里1.1需要准备nginx.conf配置文件1.2将nginx.conf内容存放到configmap里(通过文件的方式,,这样简单一点)1.3启动ngnix的pod,使用configmap里的nginx.conf配置文件2.......
  • windows 安装Nginx服务
    一、版本说明  Nginx版本:1.26.0 二、下载Nginx  下载地址:https://nginx.org/en/download.html    选择一个版本,这里选择最新稳定版本  下载后解压到一个目录,注意解压目录最好不要有中文、空格    因为电脑只有一个C盘所以地址在C盘,可以选择自己习惯的安装......
  • Java开发微服务SpringCloudAlibaba+Nginx+Vue+Mysql+RabbitMQ
    项目介绍随着互联网技术的飞速发展和移动设备的普及,自媒体平台已经成为人们获取信息、传播观点、实现自我价值的重要途径。自媒体平台的设计与实现,不仅需要考虑如何提供便捷的内容发布、编辑和管理功能,还需要考虑如何构建健康的内容生态,保证信息的真实性和可靠性,防止虚假信息的传......
  • apisix~lua插件开发与插件注册
    开发插件的步骤在APISIX中,要自定义插件,一般需要按照以下步骤进行操作:编写Lua脚本:首先,你需要编写Lua脚本来实现你想要的功能。可以根据APISIX提供的插件开发文档和示例进行编写。将Lua脚本放置到APISIX插件目录:将编写好的Lua脚本文件放置到APISIX的插件目录下,一般是/usr/loc......