文章目录

  • Centos下openresty-1.19.9-1环境搭建
    • 一、背景
    • 二、openresty安装配置
      • 2.1 编译安装
      • 2.2 配置环境变量
      • 2.3 添加lua的http模块
      • 2.4 添加到service服务

Centos下openresty-1.19.9-1环境搭建

开发测试需要用到nginx作为服务端,这里选择直接用openresty(nginx+lua)来搭建更加便利。
查看了不少的openrest安装帖子,发现不少帖子都因为版本比较旧,和新版本差异较大,在安装过程中遇到一些坑,因此把自己的安装过程mark下以供参考。

一、背景

搭建线上测试源站,支持下列功能:
支持自定义头部添加
支持POST并且保存文件
支持ssl、http/2
支持自定义状态码
致辞post body校验
支持chunked编码的post文件保存

涉及第三方模块:
自定义头部模块:headers-more-nginx-module
POST模块:lua-resty-upload (内置于OpenResty中)
lua模块:lua-nginx-module(openresty本身是有内置,额外安装模块提供更加强大的lua支持)
upload模块:nginx-upload-module

系统版本:CentOS 6.5

二、openresty安装配置

下面所有的安装包都可以通过官网或者github获取,openresty官网:OpenResty® - 中文官方站
openresty版本:openresty-1.19.9.1.tar.gz

openssl版本:openssl-OpenSSL_1_1_1h.tar.gz

upload模块:nginx_upload_module-2.2.0.tar.gz

自定义头部:headers-more-nginx-module-0.33.tar.gz

lua模块:lua-nginx-modulev0.10.20.tar.gz

【备注】不要急急忙忙去下载安装包,先把安装部分看完会省不少事哦

2.1 编译安装

开始安装openresty之前需要先安装依赖环境,相关帖子很多,这里就不赘述
可以参考:CentOS 平台 · OpenResty最佳实践 (gitbooks.io)

【编译配置】:采用默认安装路径 /usr/local/openresty

# cd openresty-1.19.9.1
#./configure --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-http_sub_module --with-pcre --with-http_ssl_module --with-openssl=/root/openssl-1.1.1h --with-http_gunzip_module --with-http_v2_module --with-http_auth_request_module --with-http_random_index_module --with-http_slice_module --with-http_perl_module --with-stream_ssl_preread_module --with-http_addition_module // 配置成功后执行编译和安装
#gmake
#gmake install

备注:–with-ipv6 –with-luajit 选项在新版本中默认支持不再需要额外开启

安装成功查看当前版本信息:

# ./nginx -V
nginx version: openresty/1.19.9.1
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC)
built with OpenSSL 1.1.1h  22 Sep 2020
TLS SNI support enabled
configure arguments: --prefix=/usr/local/openresty/nginx --with-cc-opt=-O2 --add-module=../ngx_devel_kit-0.3.1 --add-module=../echo-nginx-module-0.62 --add-module=../xss-nginx-module-0.06 --add-module=../ngx_coolkit-0.2 --add-module=../set-misc-nginx-module-0.32 --add-module=../form-input-nginx-module-0.12 --add-module=../encrypted-session-nginx-module-0.08 --add-module=../srcache-nginx-module-0.32 --add-module=../ngx_lua-0.10.20 --add-module=../ngx_lua_upstream-0.07 --add-module=../headers-more-nginx-module-0.33 --add-module=../array-var-nginx-module-0.05 --add-module=../memc-nginx-module-0.19 --add-module=../redis2-nginx-module-0.15 --add-module=../redis-nginx-module-0.3.7 --add-module=../rds-json-nginx-module-0.15 --add-module=../rds-csv-nginx-module-0.09 --add-module=../ngx_stream_lua-0.0.10 --with-ld-opt=-Wl,-rpath,/usr/local/openresty/luajit/lib --with-http_stub_status_module --with-http_gzip_static_module --with-http_realip_module --with-http_sub_module --with-pcre --with-http_ssl_module --with-openssl=/root/openssl-1.1.1h --with-http_gunzip_module --with-http_v2_module --with-http_auth_request_module --with-http_random_index_module --with-http_slice_module --with-http_perl_module --with-stream_ssl_preread_module --with-http_addition_module --with-openssl-opt=-g --with-stream --with-stream_ssl_module

【备注】

​ 开始想要–add-module 自己下载ngx_devel_kit-0.3.1 、headers-more-nginx-module-0.33模块,编译中提示很多文件多次定义冲突,后面在一个帖子上看到openresty源码解压后bundle目录下已经带有不少第三方模块源码了
如:headers-more-nginx-module-0.33 、ngx_lua-0.10.20、ngx_devel_kit-0.3.1、lua-resty-upload-0.10

​ 如果是下载的近期新版本的安装包,很多第三方模块都默认安装了,不需要自己添加,先确认bundle目录下没有自己需要的模块或版本再采用–add-module添加到configure配置

2.2 配置环境变量

为了后面启动 OpenResty 的命令简单一些,不用在 OpenResty 的安装目录下进行启动,我们设置环境变量来简化操作。 将 nginx 目录添加到 PATH 中。打开文件 /etc/profile, 在文件末尾加入export PATH=$PATH:/opt/openresty/nginx/sbin

# vim /etc/profile
export PATH=$PATH:/opt/openresty/nginx/sbin  # 添加

若你的安装目录不一样,则做相应修改。 注意:这一步操作需要重新加载环境变量才会生效,可通过命令source /etc/profile或者重启服务器等方式实现。

之后可以在任意位置执行nignx命令:

(1)启动
# nginx  // 单独一个nginx即可
# ps -ef| grep nginx   // 查看nginx是否成功启动
(2)重新加载配置
# nginx -s reload
(3)退出
# nginx -s stop
(4)查看状态
# nginx -s status

更多命令可以执行nginx -help查看

【备注】个人认为如果不需要设置开机启动nginx,那到这一步就可以了,可以跳过2.4添加到service服务的步骤

2.3 添加lua的http模块

lua-resty-http 是lua实现的http客户端,支持nginx中发起http请求

将http.lua、http_headers.lua、lua-resty-http-master文件上传到/usr/local/nginx/lualib/resty/路径下
注意:若没有以上模块,Nginx配置文件中的lua命令执行会报错

依赖:lua-resty-http
可直接下载http.lua/http_headers.lua放到/usr/local/openresty/lualib/resty/目录下即可

如下载:lua-resty-http-0.16.1.tar.gz

http_connect.lua
http_headers.lua
http.lua

解压后将上述三个文件拷贝到/usr/local/openresty/lualib/resty/目录下

参考:如何引用第三方 resty 库 · OpenResty最佳实践 (gitbooks.io)

2.4 添加到service服务

如果没有将nginx添加到service服务每次都需要在/usr/local/openresty/nginx/sbin下执行相关命令比较麻烦。

nginx源码安装完成后默认不会注册为系统服务,所以需要手工添加系统服务脚本。在/etc/init.d目录下新建nginx文件,并更改权限其即可。

# vim /etc/init.d/nginx   // 根据实际目录修改
#!/bin/bash# nginx Startup script for the Nginx HTTP Server# this script create it by caffreyxin at 2007.10.15.# it is v.0.0.1 version.# if you find any errors on this scripts, please contact caffreyxin.# and send mail to xinyflove at sina dot com.## chkconfig: - 85 15# description: Nginx is a high-performance web and proxy server.#              It has a lot of features, but it's not for everyone.# processname: nginx# pidfile: /var/run/nginx.pid# config: /usr/local/nginx/conf/nginx.confnginxd=/usr/local/openresty/nginx/sbin/nginx               # 根据本机实际情况修改
nginx_config=/usr/local/openresty/nginx/conf/nginx.conf    # 根据本机实际情况修改
nginx_pid=/var/run/nginx.pidRETVAL=0
prog="nginx"# Source function library.. /etc/rc.d/init.d/functions# Source networking configuration.. /etc/sysconfig/network# Check that networking is up.[ ${NETWORKING} = "no" ] && exit 0[ -x $nginxd ] || exit 0# Start nginx daemons functions.start() {if [ -e $nginx_pid ];thenecho "nginx already running...."exit 1fiecho -n $"Starting $prog: "daemon $nginxd -c ${nginx_config}RETVAL=$?echo[ $RETVAL = 0 ] && touch /var/lock/subsys/nginxreturn $RETVAL}# Stop nginx daemons functions.stop() {echo -n $"Stopping $prog: "killproc $nginxdRETVAL=$?echo[ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /var/run/nginx.pid
}# reload nginx service functions.reload() {echo -n $"Reloading $prog: "#kill -HUP `cat ${nginx_pid}`killproc $nginxd -HUPRETVAL=$?echo}# See how we were called.case "$1" in
start)start;;stop)stop;;reload)reload;;restart)stopstart;;status)status $progRETVAL=$?;;
*)echo $"Usage: $prog {start|stop|restart|reload|status|help}"exit 1
esacexit $RETVAL
  • 修改文件权限
# chmod +x /etc/init.d/nginx
  • 添加开机启动
# /sbin/chkconfig --level 345 /etc/init.d/nginx on
  • 查看nginx是否已经添加到开机启动项
# chkconfig --list  // 如果成功添加会在列表中看到已经包含了nginx

设置完成后验证能够在任何位置运行service 命令执行 nginx start | stop | restart | reload | status | help 命令

# service nginx status
nginx (pid 19726 19725 17169 10120) is running...
# service nginx stop
Stopping nginx:                                            [  OK  ]
# service nginx start
Starting nginx:                                            [  OK  ]
# ps -ef |grep nginx
root     10811     1  0 15:18 ?        00:00:00 nginx: master process /usr/local/openresty/nginx/sbin/nginx -c /usr/local/openresty/nginx/conf/nginx.conf
nobody   10812 10811  0 15:18 ?        00:00:00 nginx: worker process
nobody   10813 10811  0 15:18 ?        00:00:00 nginx: worker process
nobody   10814 10811  0 15:18 ?        00:00:00 nginx: worker process
root     11513 20070  0 15:18 pts/0    00:00:00 grep nginx

至此openresty安装完成,根据需要编辑nginx.conf修改配置,每次修改后执行service nginx reload命令重新加载即可。

  • over

Centos下openresty-1.19.9-1环境搭建相关推荐

  1. Centos下堡垒机Jumpserver V3.0环境部署

    Centos下堡垒机Jumpserver V3.0环境部署1)关闭jumpserver部署机的iptables和selinux [root@test-vm001 ~]# cd /opt [root@t ...

  2. Centos下堡垒机Jumpserver V3.0环境部署完整记录(1)-安装篇

    Centos下堡垒机Jumpserver V3.0环境部署完整记录(1)-安装篇 由于来源身份不明.越权操作.密码泄露.数据被窃.违规操作等因素都可能会使运营的业务系统面临严重威胁,一旦发生事故,如果 ...

  3. Fabric学习笔记(一)- Centos 7下的Fabric 2.3.2环境搭建

    Centos 7下的Fabric 2.3.2环境搭建 一. 环境准备 (一).在VMware Workstation 15 安装一个Centos 7的虚拟环境,切换到图形化界面 (二).打开终端,安装 ...

  4. Centos下部署NTP时间服务器同步环境

    Centos下部署NTP时间服务器同步环境记录 我是在购买的3A平台购买的服务器进行测试. 服务端部署 安装所需软件包 [root@test ~]# yum -y install ntp ntpdat ...

  5. CentOS6.5_64下 nginx+uwsgi+Python +多站点环境搭建

    本文章为各位介绍一篇关于CentOS6.5_64下 nginx+uwsgi+Python +多站点环境搭建 python web django 框架的例子. 作为一个严谨(其实就是有强迫症)的程序,为 ...

  6. ffmpeg编译gb28181_RTSP/GB28181协议/海康SDK/Ehome协议视频上云网关EasyCVR视频平台在linux环境下ffmpeg源码单步调试环境搭建...

    目前TSINGSEE青犀视频研发的视频上云服务平台EasyCVR已经可集成海康EHome私有协议,并且在前文中我也跟大家讲过EHome协议的配置和调用流程,有兴趣的可以阅读一下:配置及协议介绍.Eho ...

  7. 第1章 Window下VSCode的C语言开发环境搭建 (一)

    文章目录 文档视频讲解链接地址 第01章 开发环境搭建 1.1 C语言开发环境搭建 1. 常用的C语言开发环境介绍 VC++ 6.0 VS 2019 Clion DevC++ vim编辑 VSCode ...

  8. windows10下python开发spark应用的环境搭建

    环境搭建主要涉及到3方面,第1是安装,第2是环境变量的配置,第3是验证安装和配置是否成功,总的涉及到以下5个部分. 环境变量配置是在 此电脑 -> 属性 -> 高级系统设置 -> 高 ...

  9. windows下单机版的伪分布式solrCloud环境搭建Tomcat+solr+zookeeper

    前面简单了解了ZooKeeper的相关知识,为SolrCloud的学习作了一层铺垫.在SolrCloud的wiki中,可以很简单地用jetty实现嵌入式ZooKeeper的单机版SolrCloud.但 ...

  10. anjuta 连接mysql_ubuntu系统下如何实现C/C++开发环境搭建(IDE)

    Linux 下搭建C/C++ 开发环境 Linux 除了默认装了gcc 和文本编辑器外,没有可供利用的IDE ,当然这比windows 已经好多了,至少有个gcc ,学习在linux 下的编程,一般的 ...

最新文章

  1. linux 如何切换jdk的版本
  2. SSH 用 top 命令查看 CPU 使用率
  3. C++ IPv4与IPv6的兼容编码(转,出自http://blog.csdn.net/ligt0610/article/details/18667595)...
  4. 超图桌面版打开外部矢量文件
  5. 10大iOS开发者最喜爱的类库
  6. MySQL学习笔记17:别名
  7. html对定位图片的某一部分_某系统存任意文件上传
  8. TortoiseGit 分支管理策略
  9. Nagios 安装方法
  10. 网络编程C#篇(二):Socket无连接简单实例
  11. 解码(二):音视频解码上下文创建配置和打开avcodec_open2打开演示
  12. md5 加密 swfit版
  13. 705. 设计哈希集合
  14. 3使用技巧_办公小技巧:3+2 灵活使用WPS集成环境
  15. [转]php返回json数据中文显示的问题
  16. getopt两个模块getopt 和gun_getopt 的异同
  17. 怎样压缩图片到100k?如何把电脑图片缩小kb?
  18. Alexa 世界网站排名研究(上)(转)
  19. 爬虫入门(1)——requests(1)
  20. 山西大学计算机与信息技术学院张超,张超 - 山西大学 - 计算机与信息技术学院...

热门文章

  1. 年薪170万程序员在线征婚为什么会遭嘲讽?
  2. Apple ID,APP ID,Bundle ID,iOS Certificates,iOS Provisioning Profiles各自含义以及之间的关系
  3. VC++实现的软键盘功能(附源码)
  4. ZYNQ开发系列——PS开发之HelloWorld
  5. python中numpy矩阵的零填充
  6. 知识图谱用于推荐系统问题(MKR,KTUP,KGAT)
  7. 分数阶偏微分差分方程MATLAB,分数阶偏微分方程及其数值方法.ppt
  8. mysql查最高薪水,使用子查询查找MySQL Employee表的最高和第二最高薪水?
  9. 关于c语言的输入函数问题
  10. transforms.Compose,transforms.ToTensor(),transforms.Normalize()的含义与原理