高性能Web平台-OpenResty安装部署

2,355 阅读4分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第19天,点击查看活动详情


1.写在前面

在如今的一些项目架构中,访问接入层,一把都会使用web服务器。

这里一般的web服务器,可以选择的有apache,nginx,可能很少人会用到OpenResty。

那我们今天就来谈一下,高性能Web平台-OpenResty。主要从以下这些方面进行描述:

  • OpenResty安装部署
  • OpenResty压力测试
  • OpenResty调优
  • lua脚本安装,语法

我们都知道,入门的第一步是比较重要的,那我们今天就主要的分享一下OpenResty安装部署的教程。

好吧,那我们就开始吧!!!上菜喽!!!

image.png

2. 什么是OpenResty

OpenResty是一个基于 Nginx 与 Lua 的 高性能 Web 平台 ,其内部集成了大量精良的 Lua 库、第三方模 块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务 和动态网关。

OpenResty通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发),从而将 Nginx 有效地变成一个强大的通用 Web 应用平台。这样,Web 开发人员和系统工程师可以使用 Lua 脚本语言 调动 Nginx 支持的各种 C 以及 Lua 模块, 快速构造出足以胜任 10K 乃至 1000K 以上单机并发连接的高 性能 Web 应用系统。

OpenResty的目标是让你的Web服务直接跑在 Nginx 服务内部,充分利用 Nginx 的非阻塞 I/O 模型,不 仅仅对 HTTP 客户端请求,甚至于对远程后端诸如 MySQL、PostgreSQL、Memcached 以及 Redis 等都 进行一致的高性能响应。

Nginx:路由

  • 静态资源服务器
  • 反向代理服务器
  • 负载均衡服务器
  • 支持动态资源:API

什么是Nginx?

Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现 较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

3. OpenResty安装部署

3.1 Win版本

1 、下载 Windows 版的 OpenResty 压缩包

这里我下载的是openresty-1.21.4.1-win64.zip ,你也可以选择 32bit 的版本。

官方下载地址:OpenResty官网

image.png

这里以1.21.4.1版本为例。

2 、解压到要安装的目录

你可以根据自己的喜好选择位置。

image.png

这里我们放入到d盘下面即可。并解压出来。

3 、启动

进入到 openresty-1.21.4.1-win64目录,双击执行 nginx.exe 或者使用命令 start nginx 启动 nginx,如果没有错误现在 nginx 已经开始运行了。

image.png

4 、验证 nginx 是否成功启动:

在浏览器的地址栏输入 localhost,加载 nginx 的欢迎页面。成功加载说明 nginx 正在运行。如下图:

image.png

可以看到,成功访问,即表示启动成功了!!!

另外当 nginx 成功启动后,master 进程的 pid 存放在 logs\nginx.pid 文件中。

image.png

3.2 Linux版本

# openresty 下载地址
http://openresty.org
http://openresty.org/cn/download.html

image.png

image.png

这里我们选择centos的

可以发现,nginx访问成功了,说明openresty已经ok了!!

# 安装依赖环境
yum -y install pcre pcre-devel openssl openssl-devel zlib zlib-devel gcc
curl


# 下载openresty,根据最新版本下载即可,版本换为最新版本即可
wget https://openresty.org/download/openresty-1.13.6.1.tar.gz


tar -zxvf openresty-1.13.6.1.tar.gz
mv openresty-1.13.6.1 openresty
cd openresty
./configure


# 默认会被安装到/usr/local/openresty目录下
# 编译并安装
make && make install
cd /usr/local/openresty


# 启动nginx
/usr/local/openresty/nginx/sbin/nginx -c
/usr/local/openresty/nginx/conf/nginx.conf
ps -ef | grep nginx


# 停止nginx
/usr/local/nginx/sbin/nginx -s stop #停止服务


# 重新加载配置,修改后,执行
/usr/local/nginx/sbin/nginx -s reload

image.png

3.3 基本使用

使用安装目录下resty来进行字符串的输出;

image.png

使用content_by_lua来引入lua(正式的使用方式):

# nginx.conf配置文件中使用此配置即可
location /lua1 {
    default_type text/html;
    content_by_lua 'ngx.say("hello lua!!")';
}

把lua代码从nginx.conf里面抽取出来,保持代码的可读性和可维护性:

# 编写lua file 脚本test2.lua
ngx.say("hello,world lua2");
local args = ngx.req.get_uri_args();
ngx.say("hello openresty! lua is so easy!==="..args.id);

配置nginx.conf

# nginx.conf配置实现
location /lua2 {
    default_type text/html;
    content_by_lua_file html/lua/test2.lua;
}
# 注意这里的lua的相对路径是/usr/local/openresty/nginx/目录,当然也可以配置绝对路径

由此可见,我们这里,已经是对OpenResty安装部署进行了详细的描述。

那到此,高性能Web平台-OpenResty安装部署就介绍了。

下次就开始分享:OpenResty压力测试和调优了,敬请期待。

如果觉得能帮助到你的话,评论,收藏,三连!!!


好了,以上就是高性能Web平台-OpenResty安装部署的分享了。

个人理解,可能也不够全面,班门弄斧了。

如果觉得有收获的,帮忙点赞、评论、收藏一下呗!!!

image.png