OpenResty是个什么鬼?
等一下,OpenResty 是个什么鬼?
- OpenResty是一个强大的 Web 应用服务器,Web 开发人员可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,更主要的是在性能方面,OpenResty可以 快速构造出足以胜任 10K 以上并发连接响应的超高性能 Web 应用系统。
优点
- OpenResty 的目标是让你的 Web 服务直接跑在 Nginx 服务内部,充分利用 Nginx 的非阻塞 I/O 模型,不仅仅对 HTTP 客户端请求,甚至于对远程后端诸如 MySQL,PostgreSQL,~Memcaches 以及 ~Redis 等都进行一致的高性能响应。
所以对于一些高性能的服务来说,可以直接使用 OpenResty 访问 Mysql或Redis等,而不需要通过第三方语言(PHP、Python、Ruby)等来访问数据库再返回,这大大提高了应用的性能。
- OpenResty 的目标是让你的 Web 服务直接跑在 Nginx 服务内部,充分利用 Nginx 的非阻塞 I/O 模型,不仅仅对 HTTP 客户端请求,甚至于对远程后端诸如 MySQL,PostgreSQL,~Memcaches 以及 ~Redis 等都进行一致的高性能响应。
OpenResty安装
环境说明
本教程是基于ubuntu16.04.7安装OpenResty。
vagrant@ubuntu-xenial:~$ cat /etc/issue Ubuntu 16.04.7 LTS \n \l
编译安装
#安装导入 GPG 公钥时所需的几个依赖包 sudo apt-get -y install --no-install-recommends wget gnupg ca-certificates #导入我们的 GPG 密钥: wget -O - https://openresty.org/package/pubkey.gpg | sudo apt-key add - # 使用arch命令查看Ubuntu的内核 arch # x86_64 或 amd64 系统 echo "deb http://openresty.org/package/ubuntu $(lsb_release -sc) main" \ | sudo tee /etc/apt/sources.list.d/openresty.list # arm64 或 aarch64 系统 echo "deb http://openresty.org/package/arm64/ubuntu $(lsb_release -sc) main" \ | sudo tee /etc/apt/sources.list.d/openresty.list #更新 APT 索引 sudo apt-get update #安装openresty软件包 sudo apt-get -y install openresty # 设置PATH PATH=/usr/local/openresty/nginx/sbin:$PATH export PATH
简单使用
logs 目录用于存放日志,conf 用于存放配置文件。
mkdir /home/www cd /home/www/ mkdir logs/ conf/
conf 目录下创建一个 nginx.conf 文件
worker_processes 1; error_log logs/error.log; events { worker_connections 1024; } http { server { listen 9000; location / { default_type text/html; content_by_lua ' ngx.say("<p>Hello, World!</p>") '; } } }
启动 (
如果没有任何输出,说明启动成功,-p 指定我们的项目目录,-c 指定配置文件。
)nginx -p `pwd`/ -c ./conf/nginx.conf
测试 (
curl http://localhost:9000/
)<p>Hello, World!</p>
One comment
学习网站1:http://www.runoob.com/lua/lua-tutorial.html
学习网站2:http://wiki.jikexueyuan.com/list/lua/
学习网站3:http://jinnianshilongnian.iteye.com/category/333854 (京东构架师)
学习网站4:http://openresty.org/en/ (官网)
学习网站5:https://github.com/openresty/openresty(创立的openresty写了很多第三方的 lua 插件)