学习ngx_openresty之openresty安装 一

时间:2021-06-20 04:35:07

学习ngx_openresty之openresty安装 一

OpenResty (也称为 ngx_openresty)是一个全功能的 Web 应用服务器。它打包了标准的 Nginx 核心,很多的常用的第三方模块,以及它们的大多数依赖项。

 通过众多进行良好设计的 Nginx 模块,OpenResty 有效地把 Nginx 服务器转变为一个强大的 Web 应用服务器,基于它开发人员可以使用 Lua 编程语言对 Nginx 核心以及现有的各种 Nginx C 模块进行脚本编程,构建出可以处理一万以上并发请求的极端高性能的 Web 应用。

 OpenResty 致力于将你的服务器端应用完全运行于 Nginx 服务器中,充分利用 Nginx 的事件模型来进行非阻塞 I/O 通信。不仅仅是和 HTTP 客户端间的网络通信是非阻塞的,与MySQL、PostgreSQL、Memcached、以及 Redis 等众多远方后端之间的网络通信也是非阻塞的。

 因为 OpenResty 软件包的维护者也是其中打包的许多 Nginx 模块的作者,所以 OpenResty 可以确保所包含的所有组件可以可靠地协同工作。

 给几个链接地址了解下它的功能强大之处:



https://openresty.org

https://github.com/SinaMSRE/ABTestingGateway

https://www.gitbook.com/book/moonbingbing/openresty-best-practices/details


其实编译安装很简单,只要把OpenResty需要的依赖包安装好就可以。

linux系统centos服务器版本:安装依赖:

yum install readline-devel pcre-devel openssl-devel gcc
解压下载的压缩文件。
./configure

make
make install

mac系统下,我碰到的就是OpenSSL不太好装

不过还好,有人开发了homebrew包管理工具。http://brew.sh

请自行下载安装。

安装步骤:

brew update
brew install openssl
brew link --force openssl

看下版本:
openssl version -a

参考:http://apple.stackexchange.com/questions/126830/how-to-upgrade-openssl-in-os-x


mac系统下默认安装路径:/usr/local/openresty


为了方便配置和起停nginx,写了几个方便的脚本:


学习ngx_openresty之openresty安装 一

为了方便管理nginx的配置文件,把nginx的配置放到  ~/etc/nginx 目录:

在该目录下放的辅助启动停止脚本内容:


启动nginx脚本:

#! /bin/bash
/usr/local/openresty/nginx/sbin/nginx   -p ~/etc/nginx -c ~/etc/nginx/nginx.conf


停止脚本:

#! /bin/bash
/usr/local/openresty/nginx/sbin/nginx -s quit  -p ~/etc/nginx -c ~/etc/nginx/nginx.conf


重新加载配置:

#! /bin/bash
/usr/local/openresty/nginx/sbin/nginx -s reload  -p ~/etc/nginx -c ~/etc/nginx/nginx.conf


~/etc/nginx/nginx.conf 配置文件做了一些改动:



#user  nobody;
worker_processes  1;


#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;


pid        logs/nginx.pid;




events {
    worker_connections  1024;
}




http {
     
    include       lua.conf;


把配置挪到了lua脚本文件中:

内容:

server {
        listen       8080;
        server_name  localhost;


        location /lua {  
                default_type 'text/html';  
                 
                content_by_lua 'ngx.say("hello doctor " )';  
        }


        location /p {  
                 
                  rewrite_by_lua_file luascript/rout.lua;
        }


 }


测试下,运行脚本前请自动改动之行权限:

访问结果:

学习ngx_openresty之openresty安装 一

是不是可以运行了。