OpenResty 介绍
OpenResty(又称:ngx_openresty) 是一个基于 NGINX 的可伸缩的 Web 平台,由中国人章亦春发起,提供了很多高质量的第三方模块。
OpenResty 是一个强大的 Web 应用服务器,Web 开发人员可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,更主要的是在性能方面,OpenResty可以 快速构造出足以胜任 10K 以上并发连接响应的超高性能 Web 应用系统。
360,UPYUN,阿里云,新浪,腾讯网,去哪儿网,酷狗音乐等都是 OpenResty 的深度用户。
OpenResty 安装
菜鸟教程是居于 ubuntu14.04 安装 OpenResty。
OpenResty 依赖库有: perl 5.6.1+, libreadline, libpcre, libssl。
所以我们需要先安装好这些依赖库,也非常简单:
apt-get install libreadline-dev libpcre3-dev libssl-dev perl
如果你的系统是 Centos 或 RedHat 可以使用以下命令:
[root@iZbp143t3oxhfc3ar7jey0Z ~]# yum install readline-devel pcre-devel openssl-devel Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile base | 3.6 kB 00:00:00 epel | 5.4 kB 00:00:00 extras | 2.9 kB 00:00:00 updates | 2.9 kB 00:00:00 (1/3): epel/x86_64/updateinfo | 1.0 MB 00:00:00 (2/3): updates/7/x86_64/primary_db | 6.7 MB 00:00:00 (3/3): epel/x86_64/primary_db | 6.7 MB 00:00:00 Resolving Dependencies --> Running transaction check ---> Package openssl-devel.x86_64 1:1.0.2k-19.el7 will be installed --> Processing Dependency: zlib-devel(x86-64) for package: 1:openssl-devel-1.0.2k-19.el7.x86_64 --> Processing Dependency: krb5-devel(x86-64) for package: 1:openssl-devel-1.0.2k-19.el7.x86_64 ---> Package pcre-devel.x86_64 0:8.32-17.el7 will be installed
接下我们可以在官方(https://openresty.org/cn/)下载最新的 OpenResty 源码包并解压编译安装:
[root@iZbp143t3oxhfc3ar7jey0Z ~]# wget https://openresty.org/download/ngx_openresty-1.9.7.1.tar.gz --2020-02-21 19:37:46-- https://openresty.org/download/ngx_openresty-1.9.7.1.tar.gz Resolving openresty.org (openresty.org)... 120.26.162.249 Connecting to openresty.org (openresty.org)|120.26.162.249|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 3548444 (3.4M) [application/x-gzip] Saving to: ‘ngx_openresty-1.9.7.1.tar.gz’ 100%[==========================================================================================================================>] 3,548,444 --.-K/s in 0.1s 2020-02-21 19:37:47 (27.6 MB/s) - ‘ngx_openresty-1.9.7.1.tar.gz’ saved [3548444/3548444] [root@iZbp143t3oxhfc3ar7jey0Z ~]# ll total 310692 -rw-r--r-- 1 root root 28 Feb 20 21:50 aaa.text drwxr-xr-x 2 root root 4096 Feb 17 21:39 mysql-5.6.35-linux-glibc2.5-x86_64 -rw-r--r-- 1 root root 314581668 Feb 17 21:38 mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz -rw-r--r-- 1 root root 3548444 Dec 25 2015 ngx_openresty-1.9.7.1.tar.gz [root@iZbp143t3oxhfc3ar7jey0Z ~]# ll -h total 304M -rw-r--r-- 1 root root 28 Feb 20 21:50 aaa.text drwxr-xr-x 2 root root 4.0K Feb 17 21:39 mysql-5.6.35-linux-glibc2.5-x86_64 -rw-r--r-- 1 root root 301M Feb 17 21:38 mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz -rw-r--r-- 1 root root 3.4M Dec 25 2015 ngx_openresty-1.9.7.1.tar.gz [root@iZbp143t3oxhfc3ar7jey0Z ~]# tar -zvxf ngx_openresty-1.9.7.1.tar.gz ngx_openresty-1.9.7.1/ ngx_openresty-1.9.7.1/README.markdown ngx_openresty-1.9.7.1/configure ngx_openresty-1.9.7.1/util/
cd ngx_openresty-1.9.7.1/ ./configure make make install
Hello World 实例
安装成功后,我们就可以使用 openresty 直接输出 html 页面。
首先我们可以创建一个工作目录:
[root@iZbp143t3oxhfc3ar7jey0Z ngx_openresty-1.9.7.1]# cd /home/www/ [root@iZbp143t3oxhfc3ar7jey0Z www]# mkdir logs/ conf/ [root@iZbp143t3oxhfc3ar7jey0Z www]# ll total 8 drwxr-xr-x 2 root root 4096 Feb 21 19:46 conf drwxr-xr-x 2 root root 4096 Feb 21 19:46 logs [root@iZbp143t3oxhfc3ar7jey0Z www]# cd conf/ [root@iZbp143t3oxhfc3ar7jey0Z conf]# vim 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>") '; } } }
启动 openresty
默认情况下 openresty 安装在 /usr/local/openresty 目录中,启动命令为:
[root@iZbp143t3oxhfc3ar7jey0Z ngx_openresty-1.9.7.1]# cd /usr/local/openresty/nginx/sbin [root@iZbp143t3oxhfc3ar7jey0Z sbin]# ll total 11484 -rwxr-xr-x 1 root root 11757816 Feb 21 19:45 nginx [root@iZbp143t3oxhfc3ar7jey0Z sbin]# cd /home/www [root@iZbp143t3oxhfc3ar7jey0Z www]# /usr/local/openresty/nginx/sbin/nginx -p `pwd`/ -c conf/nginx.conf
如果没有任何输出,说明启动成功,-p 指定我们的项目目录,-c 指定配置文件。
接下来我们可以使用 curl 来测试是否能够正常范围:
[root@iZbp143t3oxhfc3ar7jey0Z www]# curl http://localhost:9000/ <p>Hello, World!</p> [root@iZbp143t3oxhfc3ar7jey0Z www]#