原创

【Nginx】Nginx 第二选择: OpenResty 安装指南

OpenResty,也被称为“ngx_openresty”,是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方的Nginx模块和大部分系统依赖包,用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。OpenResty不是Nginx的分支,它只是一个软件包。

OpenResty允许开发人员使用lua编程语言构建现有的Nginx的C模块,支持高流量的应用程序。

OpenResty官网:https://openresty.org/cn/download.html
参考文档: https://openresty.org/cn/installation.html

1、安装OpenResty所需的基础环境

gcc 编译器

yum install gcc

curl库

yum install curl

pcre、zlib、openssl开发库

yum install pcre-devel zlib-devel openssl-devel
其实openssl会依赖pcre和zlib

如果启用postgres模块,还需要安装postgresql开发库 ,否则会报错:ngx_postgres addon was unable to detect version of the libpq library

yum install postgresql-devel

2、准备安装openresty

为了灵活配置起见,本文采用的是源码安装的方式。
还有一种更简单的方式,直接yum安装。

yum安装

# add the yum repo:
wget https://openresty.org/package/centos/openresty.repo
sudo mv openresty.repo /etc/yum.repos.d/

# update the yum index:
sudo yum check-update

yum install openresty

更多细节见官方文档: https://openresty.org/en/linux-packages.html#centos

Building from Source 安装

下载

wget https://openresty.org/download/openresty-1.19.3.1.tar.gz

解压

tar xzvf openresty-1.19.3.1.tar.gz
cd openresty-1.19.3.1/

配置(检测环境、生成Makefile、为编译做准备)

./configure

默认 --prefix=/usr/local/openresty,程序会被安装到/usr/local/openresty目录
可以自己指定各种选项,比如

./configure --prefix=/usr/local/openresty \
            --with-luajit  \
            --with-http_ssl_module \
            --with-http_iconv_module \
            --with-http_realip_module \
            --with-pcre   -j2

--prefix: 自定义安装路径
--with-luajit: 集成luajit模块,在1.5.8.1之后已经默认开启,不加也是启用的
--with-http_ssl_module:
--without-http_redis2_module: 禁止 http_redis2_module 组件
--with-http_iconv_module: 获取用户真实ip模块
--with-http_realip_module:
--with-pcre: Perl兼容的表达式模块
--with-http_postgres_module:
-j2: 支持多核线程编译 make 工作的特性

更多见官方文档: http://openresty.org/cn/components.html

执行后效果如下:
file

使用 ./configure --help 查看更多的选项

./configure运行出错可以到build/nginx-1.13.6.2/objs/autoconf.err 查看。

绝大部分组件已内置在OpenResty安装包中,但也有一部分不包含在内:
Drizzle Nginx 模块、 Postgres Nginx 模块 以及 Iconv Nginx 模块 默认并未启用。
你需要分别加入--with-http_drizzle_module、--with-http_postgres_module 和 --with-http_iconv_module 编译选项来开启它们

编译

gmake

如果您的电脑支持多核 make 工作的特性, 您可以这样编译:
gmake -j2
file

安装

gmake install
file

3、启动

然后可以cd到 /usr/local/openresty ,会看到有个nginx目录,没错这就是nginx,和原生的用法一样,我们直接可以执行: nginx/sbin/nginx 来启动nginx

cd /usr/local/openresty/nginx

-- 启动
./sbin/nginx -c conf/nginx.conf
file
如果端口被占用,则清楚之前的端口即可

快速停止nginx:nginx -s stop
完整有序的停止nginx:nginx -s quit
修改配置后重新加载生效:nginx -s reload

file

讲在最后的话

nginx与openresty 各有千秋。视各自的情况来定。

但是 openresty 存在几点注意事项:
1、openresty 需要的pcre插件,不能用pcre2来代替。
2、 openssl的版本更替中,API的改动非常大,版本兼容有问题,openresty需要的openssl版本,一定要匹配。

~ end

正文到此结束
广告是为了更好的提供数据服务
本文目录