接上一篇,我们在初始化安装的时候添加了nginx_lua模块,然后了解到nginx不可以动态加载模块,所以当你安装第三方模块的时候需要覆盖nginx文件.接下来一起看看如何安装nginx第三模块吧!

     1.我们先看看 目前nginx的配置

[root@localhost src]# cd /usr/local/nginx/
[root@localhost nginx]# ./sbin/nginx -V
nginx version: nginx/1.8.
built by gcc 4.8. (Red Hat 4.8.-) (GCC)
configure arguments: --prefix=/usr/local/nginx --add-module=/usr/local/src/ngx_devel_kit-0.2.19 --add-module=/usr/local/src/lua-nginx-module-0.9.13
[root@localhost nginx]#

2.今天我们以一款动态配置upstream的模块为例子 (lua-upstream-nginx-module) https://github.com/yzprofile/ngx_http_dyups_module

[root@localhost src]# wget https://github.com/yzprofile/ngx_http_dyups_module/archive/master.tar.gz \
> -O ngx_http_dyups_module-master.tar.gz

3.解压,编译

[root@localhost src]# tar  -zvxf ngx_http_dyups_module-master.tar.gz
[root@localhost src]# cd nginx-1.8.
[root@localhost nginx-1.8.]# ./configure --prefix=/usr/local/nginx --add-module=/usr/local/src/ngx_devel_kit-0.2. --add-module=/usr/local/src/lua-nginx-module-0.9. --add-module=/usr/local/src/ngx_http_dyups_module-master
[root@localhost src]# make

    4.然后覆盖nginx文件并重新开启nginx

[root@localhost nginx-1.8.]# /usr/local/nginx/sbin/nginx  -s stop
[root@localhost nginx-1.8.]# cp objs/nginx /usr/local/nginx/sbin/nginx
cp:是否覆盖"/usr/local/nginx/sbin/nginx"? y
[root@localhost nginx-1.8.]# /usr/local/nginx/sbin/nginx

    5.测试下原有lua模块 正常

   

   6.下面测试我们的lua-upstream-nginx-module

        先修改nginx  主要是添加 动态配置upstream的接口站点 我们这里用端口81来 默认配置了 ttlsa1跟ttlsal2

        [root@localhost nginx]# vim conf/nginx.conf

#user  nobody;
worker_processes ; #error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info; #pid logs/nginx.pid; events {
worker_connections ;
} http {
include mime.types;
default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"'; access_log logs/access.log main; sendfile on;
#tcp_nopush on; #keepalive_timeout ;
keepalive_timeout ; gzip on; upstream ttlsa1 {
server 127.0.0.1:;
} upstream ttlsa12 {
server 127.0.0.1:;
}
# 动态配置upstream的接口站点
server {
listen ;
location / {
dyups_interface; # 这个指令表示这边是接口站点
}
} server {
listen ;
server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / {
root html;
index index.html index.htm;
}
location /hello {
default_type 'text/plain';
content_by_lua 'ngx.say("hello, lua")';
}
#error_page /.html; # redirect server error pages to the static page /50x.html
#
error_page /50x.html;
location = /50x.html {
root html;
}
}
}

      6.1然后重启nginx

      [root@localhost nginx]# ./sbin/nginx -s reload 

      6.2开始测试

           浏览器访问 http://10.12.7.32:81/list 

           我这里是远程访问,没有开启81端口所以第一次悲剧了

           编辑防火墙列表

           [root@localhost nginx]# vim /etc/sysconfig/iptables 

           把81端口添加

          

 不过你要是在centos操作的话就忽略此步骤

           测试无非就是http请求

           centos下操作

[root@localhost nginx]# curl -d "server 127.0.0.1:801;server 127.0.0.1:802;" 127.0.0.1:/upstream/ttlsa3
[root@localhost nginx]# curl 127.0.0.1:/detail
ttlsa1
server 127.0.0.1: weight= max_fails= fail_timeout= backup= down= ttlsa12
server 127.0.0.1: weight= max_fails= fail_timeout= backup= down= ttlsa3
server 127.0.0.1: weight= max_fails= fail_timeout= backup= down=
server 127.0.0.1: weight= max_fails= fail_timeout= backup= down=

     浏览器下

 ok,http的话c#操作肯定很方便,不过据说这家伙不能upstream 持久化,nginx重启后就啥也没有了,接下来还是的看看有没有其他更好的!

           目前看nginx资料都是在一些运维的站点比较多,前两篇也是结合http://www.ttlsa.com去看的,网站不错,名字也很棒《运维生产时间》!

玩玩 Nginx 2-----给Nginx添加第三方模块(动态更新upstream)的更多相关文章

  1. nginx 番外----添加第三方模块

    #第三方模块需要先进行下载,然后再编译时指定文件目录 1.查看当前编译模块 root@nginx sbin]# ./nginx -V #查看当前添加模块 nginx version: nginx/ b ...

  2. nginx添加第三方模块

    原已经安装好的nginx,现在需要添加一个未被编译安装的模块: nginx -V 可以查看原来编译时都带了哪些参数,看看nginx是哪个版本,去下载一个nginx的源码,解压 原来的参数:--pref ...

  3. yum安装的Nginx添加第三方模块支持tcp

    需求:生产有个接口是通过socket通信.nginx1.9开始支持tcp层的转发,通过stream实现的,而socket也是基于tcp通信. 实现方法:Centos7.2下yum直接安装的nginx, ...

  4. yum安装下的nginx,如何添加模块,和添加第三方模块

    需求:生产有个接口是通过socket通信.nginx1.9开始支持tcp层的转发,通过stream实现的,而socket也是基于tcp通信. 实现方法:Centos7.2下yum直接安装的nginx, ...

  5. nginx使用热部署添加新模块

    简介 当初次编译安装nginx时,http_ssl_module 模块默认是不编译进nginx的二进制文件当中,如果需要添加 ssl 证书.也就是使用 https协议.那么则需要添加 http_ssl ...

  6. python永久添加第三方模块,PYTHONPATH的设置

    今天用pip安装pymysql后遇到了一个问题,在PyCharm中import pymysql模块时,运行却提示我找不到pymysql mudule 我先考虑的是pymysql没有安装成功,但是cmd ...

  7. Nginx 高级配置-第三方模块编译

    Nginx 高级配置-第三方模块编译 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 第三模块是对nginx 的功能扩展,第三方模块需要在编译安装Nginx 的时候使用参数--add ...

  8. 循序渐进nginx(三):日志管理、http限流、https配置,http_rewrite模块,第三方模块安装,结语

    目录 日志管理 access_log error_log 日志文件切割 自定义错误页 http访问限流 限制请求数 语法 使用 限制连接数 语法 测试 补充: https配置 使用 生成证书 配置ng ...

  9. 如何安装nginx第三方模块

    nginx文件非常小但是性能非常的高效,这方面完胜apache,nginx文件小的一个原因之一是nginx自带的功能相对较少,好在nginx允许第三方模块,第三方模块使得nginx越发的强大. 在安装 ...

随机推荐

  1. (转)JAVA的整型与字符串相互转换

    JAVA的整型与字符串相互转换1如何将字串 String 转换成整数 int? A. 有两个方法: 1). int i = Integer.parseInt([String]); 或         ...

  2. bootstrap 响应式工具

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. <input/>标签在 苹果浏览器中 默认的有圆角

    解决方法: input{ border-radius:0; -webkit-border-radius:0; }

  4. BZOJ ac100题存档

    不知不觉AC100题了,放眼望去好像都是水题.在这里就做一个存档吧(特别感谢各位大神尤其是云神http://hi.baidu.com/greencloud和丽洁姐http://wjmzbmr.com/ ...

  5. Unity3d中如何混用三种脚本语言?

    首先要明白,这三种说的混用是指文件级别的混用,就是说一个文件是由一种语言写的.而不是说你这一个文件可以混用这三种语言,注意这是不允许的. 第二要明白,在unity3d中为什么可以使用三种语言混合开发? ...

  6. oracle 用系统用户以SYSDBA身份登陆

    最近发现很多人问我 这么直接用系统OS用户 登陆 oracle : 1.首先通过用管理身份打开DOS命令窗口: 然后使用命令: sqlplus / as sysdba 即可: 其实这个命令和用sys用 ...

  7. hibernate切换数据源

    起因: 公司的当前产品,主要是两个项目集成的,一个是java项目,还有一个是php项目,两个项目用的是不同的数据源,但都是mysql数据库,因为java这边的开发工作已经基本完成了,而php那边任务还 ...

  8. 微信公众平台开发-OAuth2.0网页授权(含源码)

    微信公众平台开发-OAuth2.0网页授权接口.网页授权接口详解(含源码)作者: 孟祥磊-<微信公众平台开发实例教程> 在微信开发的高级应用中,几乎都会使用到该接口,因为通过该接口,可以获 ...

  9. Android网络开发实例(基于抓包实现的网络模拟登录,登出和强制登出)

    学习Android有几个月了,最近喜欢上了网络编程,于是想通过Android写一些一个小程序用于连接外网.在这里非常感谢雪夜圣诞的支持,非常感谢,给我打开新的一扇门. 1.声明,本程序只能用于西南大学 ...

  10. Omi应用md2site发布-markdown转网站利器

    写在前面 Md2site是基于Omi的一款Markdown转网站工具,使用简单,生成的文件轻巧,功能强大. 当我们想把一堆markdown文档转成网站时,你可能有许多选择,倘若选择 md2site , ...