OpenResty是一款基于Nginx和Lua的高性能Web平台,在nginx基础之上集成了大量的lua库,第三方模块等,以便搭建各种处理高并发、可扩展的Web应用、服务或网关,并且OpenResty完全兼容nginx所有的配置,可以直接当做nginx来使用,而且可以支持lua进行编程处理相应的逻辑,实现高并发的请求处理,可以弥补nginx不可编程的困难,所以是结合了nginx的异步模型加上Lua编程简单的两大优点,实现高性能可扩展的网关,下面就主要叙述下openresty的基本安装和配置

openresty官网:http://openresty.org/

下载页面:http://openresty.org/cn/download.html,官方提供针对不同平台的二进制包,我这使用的是源码包编译的方式安装,用二进制包安装更简单

安装参考:http://openresty.org/cn/installation.html

安装之前首先要确认系统的基础环境,我使用的是CentOS 7,确认环境如下:

1. gcc  编译器,yum安装命令: yum install gcc

2. curl库,yum安装命令: yum install curl

3. pcre、zlib、openssl开发库,安装命令: yum install pcre-devel zlib-devel openssl-devel ,其实openssl会依赖pcre和zlib

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

5. 最后准备OpenResty源码包:openresty-1.17.8.2.tar.gz

然后准备安装openresty,解压源码包:

tar -xvzf openresty-1.17.8.2.tar.gz
cd openresty-1.17.8.2

然后设置配置选项:

./configure --prefix=/opt/openresty --with-luajit --with-http_iconv_module --with-http_postgres_module

默认的prefix目录为:/usr/local/openresty,这里指定到/opt/openresty,另外--with-luajit在1.5.8.1之后已经默认开启,不加也是启用的,更多的参数选项执行: ./configure --help 查看,接下来编译并安装源码:

make -j4
make install

然后可以cd到/opt/openresty,会看到有个nginx目录,没错这就是nginx,和原生的用法一样,我们直接可以执行: nginx/sbin/nginx 来启动nginx,这个时候可以访问首页来测试一下:

然后也可以单独自己随便找个目录创建自己的OpenResty项目,比如到自己的用户目录下操作:

mkdir ~/resty-work
cd ~/resty-work
# 创建conf和logs目录
mkdir conf logs

然后在conf下创建配置文件:conf/nginx.conf,配置如下内容:

worker_processes  1;
error_log logs/error.log;
events {
worker_connections 1024;
}
http {
server {
listen 8080;
location / {
default_type text/html;
content_by_lua_block {
ngx.say("<p>hello, OpenResty!</p>")
}
}
}
}

这个配置和普通nginx一样,只是在其中嵌入了一行lua block用来输出内容,然后保存配置,为了之后执行方便可以将nginx二进制文件加入到PATH中:

export PATH=$PATH:/opt/openresty/nginx/sbin

然后再配置到profile即可,这是就可以使用nginx启动当前的项目: nginx -p `pwd` -c conf/nginx.conf ,因为这次是单独启动项目,因此需要使用-p指定要运行的path,默认是openresty安装目录下的nginx目录,然后-c指定配置文件,默认是:conf/nginx.conf,这时pid文件就为~/resty-work/logs/nginx.pid,如果停止同样要指定目录和配置文件(如果不是默认): nginx -p `pwd` -c conf/nginx.conf -s stop ,重新载入配置同样是-s reload参数,和nginx一样,这种独立目录的形式和默认配置效果相同,只是更有编程的感觉,不同功能运行不同的项目,可以跑多个项目,跑起来之后访问页面8080端口可以看到输出内容:

这样OpenResty就基本配置好了

Linux下安装配置OpenResty服务器的更多相关文章

  1. linux下安装配置svn服务器

    linux下安装配置svn服务器 1. svn服务器安装 将subversion-1.4.0.tar.gz和subversion-deps-1.4.0.tar.gz传到服务器. tar xfvz su ...

  2. linux下安装配置DHCP服务器

    前提是已经安装了 core 及 base 两个组 1 2 3 4 5 # cat /etc/redhat-release   Red Hat Enterprise Linux Server relea ...

  3. Linux下安装配置MySQL5.7服务器

    Linux下安装配置MySQL服务器 一.安装环境 ============ OS:centos6.8 MySQL:mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz ...

  4. (转载)Linux下安装配置MySQL+Apache+PHP+WordPress的详细笔记

    Linux下安装配置MySQL+Apache+PHP+WordPress的详细笔记 Linux下配LMAP环境,花了我好几天的时间.之前没有配置过,网上的安装资料比较混乱,加上我用的版本问题,安装过程 ...

  5. linux上安装配置samba服务器

    linux上安装配置samba服务器 在linux上安装配置samba服务器 在这给大家介绍一个不错的家伙,samba服务.如果您正在犯愁,如何在Windows和Linux之间实现资源共享,就请看看这 ...

  6. Kali Linux 下安装配置MongoDB数据库 ubuntu 下安装配置MongoDB源码安装数据库

    Kali Linux 下安装配置MongoDB数据库   1.下载mongodb.tgz 压缩包: 2.解压到:tar -zxvf mongodb.tgz /usr/local/mongodb 3.创 ...

  7. Linux 下安装配置 JDK7

    Linux 下安装配置 JDK7 配置环境(debian 7) 自从从Oracle收购Sun近三年来,已经有很多变化.早在8月,甲骨文将“Operating System Distributor Li ...

  8. linux 下安装配置jboss as7以及部署应用

    linux 下安装配置jboss as7以及部署应用 1.测试平台及软件 centos 5.4 jdk-7u5-linux-i586.rpm jboss-as-7.1.1.Final.zip jbos ...

  9. Linux下安装配置与使用MySQL数据库

    Linux下安装配置与使用MySQL数据库 在Linux下安装做开发时往往少不了要使用到MySQL数据库,下面就Linux系统为例讲解一下,如何安装MySQL数据库,如何启用/停.止MySQL服务,如 ...

  10. 在linux下安装配置rabbitMQ详细教程

    在linux下安装配置rabbitMQ详细教程 2017年12月20日 17:34:47 阅读数:7539 安装Erlang 由于RabbitMQ依赖Erlang, 所以需要先安装Erlang. Er ...

随机推荐

  1. wsl使用记录

    # wsl使用记录 安装 直接参考微软官方文档使用 WSL 在 Windows 上安装 Linux ubuntu可用发行版安装 https://ubuntu.com/wsl 访问 方式一:在资源管理器 ...

  2. Python基础之程序与用户交互

    [一]Python基础之程序与用户交互 [一]程序如何与用户交互 用户通过input命令在窗口内与输入就可以让用户和窗口进行交流 input接受的所有数据类型都是 str 类型 username = ...

  3. iview select 下拉 多选 数组 外面包一层 数组改逗分,外层不能用v-model 要用 :value @input,input里面要把对象解构下,才能过验证 - vue

    iview select 下拉 多选 数组 外面包一层 数组改逗分,外层不能用v-model 要用 :value @input,input里面要把对象解构下,才能过验证 - vue

  4. The History of the English language 英语语音的起源 - 英语的历史 - 古英语 印欧语 希腊语 拉丁语

    印欧语 希腊语 拉丁语 日耳曼语 都是什么年代的语言 https://time.graphics/line/776755 印欧语是指印欧语系,它最初被认为在公元前2500年左右分散流传于欧洲.亚洲和印 ...

  5. C++实现一个线程安全的map

    本文是使用ChatCPT生成的,最终的代码使用起来没问题.代码是通过两轮对话完善的,后面把对话合并后跑不出理想效果就没尝试了. 第一轮对话 请求 c++11实现一个线程安全的map,使用方法与std: ...

  6. HUAWEI WATCH GT3手表芯片传感器简析

    一 这里梳理一下华为手表GT3所使用的芯片 芯片A: BES2500L 恒玄BES2500L智能手表SoC,集存储.音频.连接为一体,集成BT5.2双模蓝牙,可支持BLE数据传输.蓝牙通话和音乐播放功 ...

  7. python 判断bytes是否相等的几种方法

    一 前言: python判断bytes是否相等,一般要用到这几种方法:is,==,operator.下面做几个例子让大家看一下. 二 正文: 1 相等方法: test1=b'0xab' test2=b ...

  8. c语言之被遗漏的角落---#pragma pack

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...

  9. [剑指 Offer II 114. 外星文字典] 拓扑排序

    import java.util.*; class Solution { public static void main(String[] args) { Solution solution = ne ...

  10. 基于Rust的Tile-Based游戏开发杂记(01)导入

    什么是Tile-Based游戏? Tile-based游戏是一种使用tile(译为:瓦片,瓷砖)作为基本构建单位来设计游戏关卡.地图或其他视觉元素的游戏类型.在这样的游戏中,游戏世界的背景.地形.环境 ...