IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> nginx stream模块 代理MySQL -> 正文阅读

[系统运维]nginx stream模块 代理MySQL

一、stream模块介绍

????????Nginx 的 TCP/UDP 代理功能的模块分为核心模块和辅助模块。核心模块stream 需要在编译配置时增加“--with-stream”参数进行编译。stream模块一般用于TCP/UDP数据流的代理和负载均衡,通过stream模块我们可以代理转发tcp报文。

二、stream模块的作用和使用场景

????????其实介绍里已经说了,stream模块一般用于数据流的代理转发和负载均衡。这里说的代理转发,一般是对源地址有限制的环境下,就比如MySQL。外部服务器想访问mysql里的数据,但是MySQL对源地址有限制,我们就可以通过nginx做代理。还有就是实现流量的负载均衡,如果有多个TCP或UDP端口服务,我们可以通过stream模块实现数据流的负载均衡。我这边主要是用到stream模块的代理转发。

三、配置实列

????????配置方法一: 只转发一个端口,我这里只需要转发到内网MySQL的3306端口,就可以写的简单点。修改nginx.conf 配置文件。

????????注意:stream模块配置与http块和event块并列。

stream { ? ? ? ?
? ? ? ? server {
? ? ? ? ? ? listen 9003;??# 配置监听端口
? ? ? ? ? ? proxy_connect_timeout 10s;??#设置nginx服务器和后端连接超时时间为10s
? ? ? ? ? ? proxy_timeout 30s;? ?#设置客户端和代理服务之间的超时时间,如果30秒内没操作将自动断开。
? ? ? ? ? ? proxy_pass 127.0.0.1:3306 ;? # 转发服务器IP+端口
? ? ? ? }
}

http {

? ? ……

????????配置方法二:实现负载均衡,用include方式将我们配置实例单独配置,方便管理。在include配置的路径下添加 stream 文件。

# 修改nginx.conf 配置文件

stream {
? ? log_format proxy '$remote_addr [$time_local] ' '$protocol $status $bytes_sent $bytes_received ' '$session_time "$upstream_addr" ' '"$upstream_bytes_sent" "$upstream_bytes_received" "$upstream_connect_time"';
? ? access_log /var/log/nginx/tcp-access.log proxy ;
? ? open_log_file_cache off;
? ? include /usr/local/nginx/conf/vhost/*.stream;
}

http {
……

# 文件路径:/usr/local/nginx/conf/vhost/mysql.stream

upstream sql {
? server 192.168.1.11:3306;
? server 192.168.1.10:3306;
}
?
server {
? ? listen 9003 ; ?# 配置监听端口
? ? proxy_connect_timeout 10s; ?#设置nginx服务器和后端连接超时时间为10s
? ? proxy_timeout 30s; #设置客户端和代理服务之间的超时时间,如果30秒内没操作将自动断开。
? ? proxy_pass sql ;? # 这里的sql必须和upstream 上配置的名称一样
? ? error_log /data/nginx/error.log ;
}
?

四、使用stream时报错及处理

编辑完配置文件后,使用nginx -t 时如果有以下报错:nginx: [emerg] “stream“ directive is not allowed here in ……

那么一般有以下几种可能:

????????1. stream 模块位置没写对。仔细检查一下,一定要与http模块并列。

????????2. 没有安装stream。这个可以百度一下。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 17:01:55  更:2022-07-17 17:03:11 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 19:47:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码