nginx添加stream模块

本文详细介绍了如何查看Nginx当前加载的模块,如何添加新的模块如stream,并提供了具体的步骤,包括配置、编译、停止、备份、替换及重启Nginx的过程。
  • 查看nginx目前模块

   /usr/local/nginx/sbin/nginx -V
   如:
    nginx version: nginx/1.12.2
    built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) 
    configure arguments: --add-module=/usr/local/fast/fastdfs-nginx-module/src/

  • 添加模块 stream

   
    cd /usr/local/nginx-1.12.2
    #需要把之前的参数带上
    ./configure --add-module=/usr/local/fast/fastdfs-nginx-module/src/ --with-stream
    make (切忌不要输入make install,否则会覆盖掉nginx文件)

  • 停止nginx

    ps -ef | grep nginx|grep -v grep|cut -c 9-15|xargs kill -9

  • cp nginx文件

    cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
    cp /usr/local/nginx-1.12.2/objs/nginx /usr/local/nginx/sbin/

  • 启动nginx

    /usr/local/nginx/sbin/nginx
    查看依赖模块 /usr/local/nginx/sbin/nginx -V

### Nginx Stream 模块配置详解 #### 配置文件结构 Nginx Stream 模块用于处理非 HTTP 协议的流量,如 TCP 和 UDP。基本配置结构如下: ```nginx stream { upstream backend { server 192.168.1.1:1234; server 192.168.1.2:1234; } server { listen 12345; proxy_pass backend; } } ``` 这段代码展示了如何设置一个简单的 TCP 负载均衡器[^1]。 #### 主要指令解释 - **upstream**: 定义一组服务器列表,这些服务器将接收来自客户端的请求。 - **server (in stream block)**: 设置监听端口以及转发目标。`proxy_pass` 后面跟的是上游服务器组的名字。 - **listen**: 指定监听哪个 IP 地址和端口号上的连接请求。 对于更复杂的场景,还可以加入健康检查、SSL 支持等功能来增强安全性与稳定性[^3]。 例如,在启用 SSL/TLS 加密的情况下,可以在 `server` 块内添加证书路径等相关参数: ```nginx stream { upstream backend { server 192.168.1.1:1234 ssl; server 192.168.1.2:1234 ssl; check interval=30s rise=2 fall=5 timeout=10s type=tcp; } map $ssl_preread_server_name $name { default example.com; } server { listen 443; proxy_pass backend; ssl_protocols TLSv1.2 TLSv1.3; ssl_certificate /etc/nginx/cert.pem; ssl_certificate_key /etc/nginx/key.pem; } } ``` 此段配置实现了带有 SSL/TLS 加密功能的 TCP 流量分发,并加入了对后端服务状态监测的支持。 #### 应用实例 假设有一个 MySQL 数据库集群需要通过 Nginx 来做读写分离,则可以通过下面的方式来进行配置: ```nginx stream { upstream mysql_readonly { zone tcp_memcached 64k; hash $remote_addr consistent; server db-read-only-1.example.com:3306 max_fails=3 fail_timeout=30s; server db-read-only-2.example.com:3306 max_fails=3 fail_timeout=30s; } upstream mysql_write { server master-db.example.com:3306 weight=5 max_conns=1000; } server { listen 3307; proxy_pass mysql_readonly; } server { listen 3308; proxy_pass mysql_write; } } ``` 这里分别设置了两个不同的监听端口对应只读操作和写入操作的不同数据库节点集合。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值