前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在Linux上安装配置OpenResty

在Linux上安装配置OpenResty

作者头像
KenTalk
发布2024-04-28 09:25:21
1420
发布2024-04-28 09:25:21
举报
文章被收录于专栏:Ken的杂谈Ken的杂谈

一、前言

OpenResty是一个基于 Nginx 与 Lua 的开源高性能 Web 平台,OpenResty团队为Nginx开发了Lua模块,使得开发者/运维可以使用Lua为OpenResty开发扩展,或者为Nginx定制功能,另外OpenResty团队也内置了很多Lua扩展(JWT、MySQL、Redis等),可以通过OpenResty高效率的开发高性能Web服务

1、本文主要内容

  • OpenResty基础依赖:Lua、LuaJit、LuaRocks编译安装
  • OpenResty安装(Yum)&配置开机启动
  • OpenResty编译安装&配置开机启动
  • OpenResty配置HTTP代理
  • OpenResty+Lua脚本响应HTTP请求
  • OpenResty常用命令介绍

2、本文环境信息

工具/环境

版本说明

适用版本

Linux

OpenEuler 22.03 LTS

openEuler 22.03+,CentOS 7+

Lua

5.1.5

5.1+

LuaJit

2.1

2.0+

LuaRocks

3.11.0

3.0+

OpenResty

1.21.4.1

1.17+

3、前置准备

开放80及其他测试端口

代码语言:javascript
复制
sudo firewall-cmd --add-port=80-9999/tcp --permanent
sudo firewall-cmd --add-port=80-9999/udp --permanent
sudo firewall-cmd --reload

二、使用Yum包安装OpenResty

1、安装依赖&添加Yum源

代码语言:javascript
复制
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo

2、安装OpenResty

代码语言:javascript
复制
# 查看可选版本
yum list openresty --showduplicates

# 输出示例
openresty.x86_64                                         1.19.3.2-1.el7  
openresty.x86_64                                         1.21.4.1-1.el7  
openresty.x86_64                                         1.25.3.1-1.el7 

# 安装指定版本
sudo yum install -y openresty-1.21.4.1-1.el7  

# 安装最新版本
sudo yum install -y openresty

3、启动&设置为开机启动

代码语言:javascript
复制
sudo systemctl start openresty
sudo systemctl enable openresty

4、安装验证

代码语言:javascript
复制
# 查看openresty版本
openresty -v

# curl访问测试
curl localhost --head | grep Server

三、编译安装OpenResty

1、安装准备

安装基础依赖

代码语言:javascript
复制
sudo yum install -y wget gcc make unzip git \
              readline-devel pcre-devel openssl-devel zlib-devel

准备源码安装目录

代码语言:javascript
复制
mkdir -p /home/downloads && cd /home/downloads

2、编译安装Lua

在Lua官网选择需要的版本:https://www.lua.org/ftp/,本次我们选择5.1.5版本

代码语言:javascript
复制
# 下载&解压Lua源码
wget https://www.lua.org/ftp/lua-5.1.5.tar.gz
tar zxvf lua-5.1.5.tar.gz
cd lua-5.1.5

# 编译&安装Lua到/usr/local
sed -i 's/INSTALL_TOP=.*/INSTALL_TOP= \/usr\/local/' Makefile
make linux && sudo make install

使编译安装的Lua生效

代码语言:javascript
复制
# 替换原有lua
sudo mv /usr/bin/lua /usr/bin/lua.bak
sudo ln -sf /usr/local/bin/lua /usr/bin/lua

# 验证安装
lua -v

3、编译安装LuaJit

代码语言:javascript
复制
# git迁出LuaJit仓库
cd /home/downloads
git clone -b v2.1 https://luajit.org/git/luajit.git luajit-2.1
cd luajit-2.1

# 编译&安装LuaJit
make && sudo make install

# 验证LuaJit安装
luajit -v

4、编译安装LuaRocks

在LuaRocks官网选择需要的版本:https://luarocks.org/releases,本次我们选择3.11.0版本

代码语言:javascript
复制
# 下载&解压LuaRocks源码
cd /home/downloads
wget https://luarocks.org/releases/luarocks-3.11.0.tar.gz
tar zxvf luarocks-3.11.0.tar.gz
cd luarocks-3.11.0

# 编译&安装
./configure && make && sudo make install

LuaRocks安装验证&测试

代码语言:javascript
复制
# luarocks安装luasocket包
luarocks install luasocket

# 在lua中引用安装的luasocket测试
lua
require "socket"

5、编译安装OpenResty

在OpenResty选择需要的版本:https://openresty.org/en/download.html#legacy-releases,如果没有特别要求,直接选择最新版即可,本次以1.21.4.1版本作为示例

代码语言:javascript
复制
# 下载&解压OpenResty源码
cd /home/downloads
wget https://openresty.org/download/openresty-1.21.4.1.tar.gz
tar zvxf openresty-1.21.4.1.tar.gz
cd openresty-1.21.4.1

# 配置编译选项:制定安装目录
./configure --prefix=/usr/local/openresty

# 编译&安装
make -j$(nproc) && sudo make install

安装完成后可以根据指定的路径进行测试

代码语言:javascript
复制
# 查看版本
/usr/local/openresty/nginx/sbin/nginx -v

# 启动
sudo /usr/local/openresty/nginx/sbin/nginx
# 访问测试
curl http://localhost/

# 停止
sudo /usr/local/openresty/nginx/sbin/nginx -s stop

配置OpenResty环境变量

代码语言:javascript
复制
# 修改profile
sudo vi /etc/profile

# 在文件末尾追加
export PATH=$PATH:/usr/local/openresty/bin
export PATH=$PATH:/usr/local/openresty/nginx/sbin

# 使环境变量生效
source /etc/profile

命令测试

代码语言:javascript
复制
# 查看版本
openresty -v

# 启动openresty
openresty

# 停用openresty
openresty -s stop

# 重载配置
openresty -s reload

浏览器访问测试

image.png
image.png

四、OpenResty配置

OpenResty的默认安装目录为:/usr/local/openresty 配置目录:/usr/local/openresty/nginx/conf/ 默认配置文件为:nginx.conf

1、新增配置目录

代码语言:javascript
复制
#1、新增配置文件夹
mkdir -p /openresty/conf

#2、修改默认配置
vi /usr/local/openresty/nginx/conf/nginx.conf 

#3、在http属性下新增配置文件夹(绝对路径):
include /openresty/conf/*.conf;

2、基本转发配置

跟Nginx反向代理配置方式一致

代码语言:javascript
复制
#1、新建/修改配置文件
vi /openresty/conf/ken.conf

#2、配置内容
server {
    listen       80;        #监听80端口
    server_name  test.local.ken.io; #监听的域名
    location / {            #转发或处理
        proxy_pass https://ken.io;
    }
}

#3、重载配置
openresty -s reload

修改hosts

代码语言:javascript
复制
# 修改hosts配置
sudo vi /etc/hosts

# 增加配置
127.0.0.1 test.local.ken.io

使用curl命令或者浏览器进行访问测试

代码语言:javascript
复制
curl test.local.ken.io

3、使用Lua响应请求

监听8888端口,使用OpenResty内置的Lua函数响应请求,输出:Hello,{name}

代码语言:javascript
复制
#1、新建/修改配置文件
vi /openresty/conf/hello.conf

#2、配置内容
server {
    listen 8888;

    location / {
        default_type 'text/plain';
        content_by_lua_block {
            local args = ngx.req.get_uri_args()
            local name = args["name"]
            ngx.header["X-Header"] = "ken.io"
            if name then
                ngx.say("Hello, " .. name)
            else
                ngx.say("Hello, OpenResty!")
            end
        }
    }
}

#3、重载配置
openresty -s reload

使用curl命令或者浏览器进行访问测试

代码语言:javascript
复制
curl -i localhost:8888
curl -i localhost:8888?name=Ken

# 输出示例
HTTP/1.1 200 OK
Server: openresty/1.21.4.1
Content-Type: text/plain
Transfer-Encoding: chunked
Connection: keep-alive
X-Header: ken.io

Hello, OpenResty!
image.png
image.png

五、备注

1、OpenResty常用命令

代码语言:javascript
复制
# 启动 OpenResty 主进程
openresty

# 停止 OpenResty
openresty -s stop

# 优雅地关闭 OpenResty
openresty -s quit

# 重载 OpenResty 配置文件
openresty -s reload

# 重新打开日志文件
openresty -s reopen

# 显示 OpenResty 的版本信息
openresty -v

# 指定 OpenResty 工作目录
openresty -p /path/to/work_dir

# 使用指定的配置文件启动 OpenResty
openresty -c /path/to/nginx.conf

本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-04-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
    • 1、本文主要内容
      • 2、本文环境信息
        • 3、前置准备
        • 二、使用Yum包安装OpenResty
          • 1、安装依赖&添加Yum源
            • 2、安装OpenResty
              • 3、启动&设置为开机启动
                • 4、安装验证
                • 三、编译安装OpenResty
                  • 1、安装准备
                    • 2、编译安装Lua
                      • 3、编译安装LuaJit
                        • 4、编译安装LuaRocks
                          • 5、编译安装OpenResty
                          • 四、OpenResty配置
                            • 1、新增配置目录
                              • 2、基本转发配置
                                • 3、使用Lua响应请求
                                • 五、备注
                                  • 1、OpenResty常用命令
                                  相关产品与服务
                                  腾讯云服务器利旧
                                  云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
                                  领券
                                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
                                  http://www.vxiaotou.com