0
点赞
收藏
分享

微信扫一扫

部署Nginx-Stream模块

A邱凌 2022-05-12 阅读 116

1、简介

nginx在1.9.0的时候,增加了一个 stream 模块,用来实现四层协议(网络层和传输层)的转发、代理、负载均衡等。stream模块的用法跟http的用法类似,允许我们配置一组TCP或者UDP等协议的监听,然后通过proxy_pass来转发我们的请求,通过upstream添加多个后端服务,实现负载均衡。

2、编译安装

./configure --with-stream
备注:nginx -V 查看已安装模块

3、修改配置

stream {
upstream backend {
hash $remote_addr consistent;

server backend1.example.com:12345 weight=5;
server 127.0.0.1:12345 max_fails=3 fail_timeout=30s;
server unix:/tmp/backend3;
}

upstream dns {
server 192.168.0.1:53535;
server dns.example.com:53;
}
upstream zk_server {
server 172.16.3.8:2181 weight=5;
}

server {
listen 12345;
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass backend;
}

server {
listen 127.0.0.1:53 udp reuseport;
proxy_timeout 20s;
proxy_pass dns;
}

server {
listen [::1]:12345;
proxy_pass unix:/tmp/stream.socket;
}
server {
listen 2181 tcp;
proxy_responses 1;
proxy_timeout 20s;
proxy_pass zk_server;
}
}

4、测试

登录192.168.100.100(nginx地址)服务器执行看是否有3306端口的监听
netstat -nap|grep 3306
备注:
通过nginx远程登陆数据库,需要配置可远程访问数据库的用户

5、备注

测试发现nginx会等待session结束才会记录到日志文件;
session日志只是tcp层面的记录,包括session时间,发送接收字节数等等;
session内部发送日志(比如一个socket连接建立起来以后,多次发送心跳数据)需要在应用层面才能记录;
举报

相关推荐

0 条评论