WEB服务与NGINX(15)-NGINX安装第三方模块
1.nginx安装第三方模块
nginx安装第三方模块需要进行编译安装,安装方法如下:
./configure --prefix=/你的安装目录 --add-module=/第三方模块目录 ...
注意:编译第三方模块时需要把原来编译的选项全部加上,否则新编译的功能不回包含之前的编译功能,查看当前nginx的编译选项的方法为:
[root@xuzhichao ~]# nginx -V
注意:编译第三方模块时只需要执行make,不需要make install,否则会完全覆盖之前的nginx。
下面以nginx的第三方echo模块安装为例进行演示:
第一步:测试nginx的配置文件
[root@xuzhichao ~]# cat /etc/nginx/conf.d/vhost.conf
[root@xuzhichao nginx-1.20.1]# cat /etc/nginx/conf.d/vhost.conf
server {
listen 80;
server_name www.module.com; root /data/nginx/html/web01;
location / {
index index.html;
} location /test/ {
echo "this is a test dir!";
}
location /main {
index index.html;
echo "hello world,main-->";
echo_reset_timer;
echo_location /sub1;
echo_location /sub2;
echo "took $echo_timer_elapsed sec for total.";
} location /sub1 {
echo_sleep 1;
echo sub1;
} location /sub2 {
echo_sleep 1;
echo sub2;
}
} #nginx不识别echo语句。
[root@xuzhichao ~]# nginx -t
nginx: [emerg] unknown directive "echo" in /etc/nginx/conf.d/vhost.conf:11
nginx: configuration file /etc/nginx/nginx.conf test failed
进行安装echo模块,使用wget或git下载echo模块
#下载echo模块
[root@xuzhichao ~]# yum install git -y
[root@xuzhichao ~]# git clone https://github.com/openresty/echo-nginx-module.git #新建third_moule目录专门用于存放第三方模块
[root@xuzhichao ~]# cd nginx-1.20.1/
[root@xuzhichao nginx-1.20.1]# mkdir third_moule
[root@xuzhichao nginx-1.20.1]# cp -a /root/echo-nginx-module/ third_moule/
重新编译
#首先查看当前nginx的编译选项
[root@xuzhichao nginx-1.20.1]# nginx -V
nginx version: nginx/1.20.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/apps/nginx --conf-path=/etc/nginx/nginx.conf --sbin-path=/usr/sbin/nginx --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_dav_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module --with-file-aio #编译第三方模块
[root@xuzhichao nginx-1.20.1]# ./configure --prefix=/apps/nginx --conf-path=/etc/nginx/nginx.conf --sbin-path=/usr/sbin/nginx --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_dav_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module --with-file-aio --add-module=/root/nginx-1.20.1/third_moule/echo-nginx-module #执行make操作
[root@xuzhichao nginx-1.20.1]# make
......
替换nginx二进制文件
#查看当前nginx二进制文件路径
[root@xuzhichao ~]# which nginx
/usr/sbin/nginx #复制时报错,因为nginx正在运行
[root@xuzhichao nginx-1.20.1]# cp objs/nginx /usr/sbin/nginx
cp: overwrite ‘/usr/sbin/nginx’? y
cp: cannot create regular file ‘/usr/sbin/nginx’: Text file busy #强行复制,成功。
[root@xuzhichao nginx-1.20.1]# cp objs/nginx /usr/sbin/nginx -f
cp: overwrite ‘/usr/sbin/nginx’? y
重启nginx服务
#检测语法无报错
[root@xuzhichao nginx-1.20.1]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful #重启nginx服务,restart而不是reload,新模块需要重启生效
[root@xuzhichao nginx-1.20.1]# systemctl restart nginx #查看nginx编译选项
[root@xuzhichao nginx-1.20.1]# nginx -V
nginx version: nginx/1.20.1
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
built with OpenSSL 1.0.2k-fips 26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/apps/nginx --conf-path=/etc/nginx/nginx.conf --sbin-path=/usr/sbin/nginx --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_dav_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module --with-file-aio --add-module=/root/nginx-1.20.1/third_moule/echo-nginx-module
客户端测试访问
[root@nginx01 ~]# curl http://www.module.com/test/
this is a test dir!
[root@nginx01 ~]# curl http://www.module.com/main/
hello world,main-->
sub1
sub2
took 2.019 sec for total.
WEB服务与NGINX(15)-NGINX安装第三方模块的更多相关文章
- Nginx编译安装第三方模块http_substitutions_filter_module
Nginx编译安装第三方模块http_substitutions_filter_module 分类:服务器技术 作者:rming 时间:-- . >>ngx_http_substitu ...
- nginx安装第三方模块echo
要使用第三方模块ngx_echo的功能,请重新配置添加到nginx插件中 ##下载第三方模块 wget https://github.com/openresty/echo-nginx-module/a ...
- Nginx编译安装第三方模块http_substitutions_filter_module2222
Nginx编译安装第三方模块http_substitutions_filter_module Rming -- 阅读 安装 Http 编译 module filter nginx 模块 >> ...
- nginx 安装第三方 模块
查看nginx在安装时开启了哪些模块 如果你nginx是rpm包安装的,直接用如下命令nginx -V 如果你是源码包编译安装,假如你的安装路径是/usr/local/nginx,那么你可以使用: / ...
- sae python安装第三方模块
sae python安装第三方模块 经过这一个星期的折腾,发现编程真心不是看出来的,真心是跟着书上的代码敲出来的.sae的服务做得很好,不过有时候会崩就是了.当sae上没有自己所需要的第三方模块时,可 ...
- python——模块(Module)的概念、使用以及安装第三方模块
一.模块定义 python中,一个.py文件就是一个模块(Module). 使用模块的好处:1.提高了代码的可维护性.我们把函数进行分组,分别放在不同的模块中.2.编写代码不必要从0开始,当一个模块编 ...
- 【Python】[模块]使用模块,安装第三方模块
一个.py文件就称之为一个模块(Model)按目录来组织模块的方法,称为包(Package)每一个包目录下面都会有一个__init__.py的文件内置函数1.使用模块 导入模块 import sys ...
- 安装第三方模块方法和requests
如何安装第三方模块 pip3 pip3 install xxxx 源码 下载,解压 进入目录 python setup.py inst ...
- python 安装第三方模块
在Python中,安装第三方模块,是通过setuptools这个工具完成的. 如果你正在使用Mac或Linux,安装setuptools本身这个步骤就可以跳过了. 如果你正在使用Windows,请首先 ...
- Anaconda安装第三方模块
Anaconda安装第三方模块 普通安装: 进去\Anaconda\Scripts目录,conda install 模块名 源码安装: 进去第三方模块目录,python install setup.p ...
随机推荐
- archlinux运行appimage
1.cd进入appimage所在的目录 cd your_folder 2.赋予appimage运行权限 chmod +x your_file.appimage 3.运行appimage格式文件 ./y ...
- IDEA 2018 激活(UMTIMATE)
IDEA延长使用期限 这是我的软件About,2018版本,延期至2089. 先下载压缩包解压后得到jetbrains-agent.jar. 下载页面:https://zhile.io/2018/08 ...
- 整合mybatis-spring需要的maven依赖配置
创建maven项目,导入相关jar包 junit 1 <dependency> 2 <groupId>junit</groupId> 3 <artifactI ...
- 22 axios和axios拦截器
1. axios 由于jquery有严重的地狱回调逻辑. 再加上jquery的性能逐年跟不上市场节奏. 很多前端工程师采用axios来发送ajax. 相比jquery. axios更加灵活. 且容易使 ...
- 15 JavaScript ES6中的箭头函数
15 JavaScript ES6中的箭头函数 什么是箭头函数 ES6中允许使用=>来定义函数.箭头函数相当于匿名函数,并简化了函数定义. 基本语法 // 箭头函数 let fn = (name ...
- #裴蜀定理#CF7C Line
题目 给定三个整数\(a,b,c\),问是否能找到两个数\(x,y\)使得\(ax+by+c=0\),没有则输出-1 分析 先把式子转换成\(ax+by=-c\) 然后\(x,y\)是整数当且仅当\( ...
- #dp#洛谷 6855 「EZEC-4.5」走方格
题目 分析 考虑每个格子\((i,j)\)获得的得分即为经过这个格子与不经过这个格子的答案 预处理出起点到每个点的最小得分和每个点到终点的最小得分, 那么经过这个格子的答案很好求,问题是不经过这个格子 ...
- 记一次 .NET某管理局检测系统 内存暴涨分析
一:背景 1. 讲故事 前些天有位朋友微信找到我,说他们的WPF程序有内存泄漏的情况,让我帮忙看下怎么回事?并且dump也抓到了,网上关于程序内存泄漏,内存暴涨的文章不计其数,看样子这个dump不是很 ...
- Go 语言变量类型和声明详解
在Go中,有不同的变量类型,例如: int 存储整数(整数),例如123或-123 float32 存储浮点数字,带小数,例如19.99或-19.99 string - 存储文本,例如" H ...
- openGauss数据库扩容指导
前置条件 当前集群状态正常 操作步骤 1.新节点创建用户和用户组,注意需要与当前集群的用户与用户组一致,密码也要保持一致.假设当前集群用户为 omm. 2.检查新节点环境变量,清理和 openGaus ...