Nginx Stream 配置
Nginx 是一款轻量级的 Web 服务器、反向代理服务器,由于它的内存占用少,启动极快,高并发能力强,在互联网项目中广泛应用。
安装环境
- Centos 7.9
- Nginx 1.20.1
安装方式
Nginx 的安装不推荐使用 docker
安装。同时不推荐直接 yum install nginx
,因为直接安装的话 Nginx 的版本会比较低。
所以建议安装官方最新文档版本。首先需要添加官方的仓库源。
创建文件并编辑 /etc/yum.repos.d/nginx.repo
。添加以下内容:
1 | [nginx] |
添加完成后,保存并执行 yum install -y nginx
即可完成安装。安装完成后可以使用 nginx -v
检查版本。
1 | 安装 Nginx |
nginx 常用命令如下:
1 | 允许 nginx 开机启动 |
Stream 安装
自从 nginx 1.9 以后 nginx 通过 stream 模块实现了 tcp 代理功能,无需其他软件配合即可实现四层代理和七层代理,即:访问该服务器的指定端口,nginx 就可以充当端口转发的作用将流量导向另一个服务器,同时获取目标服务器的返回数据并返回给请求者。这是一个非常实用的功能。
安装了 nginx 之后,stream 是默认开启的。或者你可以使用下面的命令查看。
1 | 查看 nginx 编译配置信息(V 大写) |
输出信息中带有 --with-stream
参数即可代理 TCP 协议。但其实缺失了 stream 模块,还需要额外安装。
1 | 安装 stream 模块 |
安装完成后即可。
Stream 配置
请注意,stream 块和 http 块是两个不同的模块,stream 不属于 http 模块,即不能放到/etc/nginx/conf.d/,stream 是通过 tcp 层转发,而不是 http 转发。
如配置在 http 内,启动 nginx 会报如下错误:
1 | nginx: [emerg] "server" directive is not allowed here |
添加 stream 目录
1 | vim /etc/nginx/nginx.conf |
tcp 转发配置
1 | 创建 tcp 转发配置目录 |
在 tcp.d
目录下创建一个 mysql.conf
配置文件。用来代理 mysql。
1 | upstream mysql-server { |
重启 nginx
1 | 重启命令 |
重启之后连接 MySQL 测试即可。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 程序员莫语!
评论