nginx 代理 tcp协议 mysql 连接

使用nginx代理mysql连接有个好处就是,如果做了容灾处理的话, 可以瞬间平滑切换到可用服务上。

1. vi /etc/nginx/nginx.conf ,在 http{} 结构体外(也就是文件末尾)添加如下配置:

stream {

    upstream cloudsocket {
       hash $remote_addr consistent;
      # $binary_remote_addr;
       server 192.168.182.155:3306 weight=5 max_fails=3 fail_timeout=30s;
    }
    server {
       listen 3306;#数据库服务器监听端口
       proxy_connect_timeout 10s;
       proxy_timeout 300s;#设置客户端和代理服务之间的超时时间,如果5分钟内没操作将自动断开。
       proxy_pass cloudsocket;
    }
}

2. cat /etc/nginx/nginx.conf ,内容如下:

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

stream {
    upstream cloudsocket {
       hash $remote_addr consistent;
      # $binary_remote_addr;
       server 192.168.182.155:3306 weight=5 max_fails=3 fail_timeout=30s;
    }
    server {
       listen 3306;#数据库服务器监听端口
       proxy_connect_timeout 10s;
       proxy_timeout 300s;#设置客户端和代理服务之间的超时时间,如果5分钟内没操作将自动断开。
       proxy_pass cloudsocket;
    }
}

3. systemctl restart nginx ,重启nginx。

4.验证

登录192.168.182.156服务器执行看是否有3306端口的监听

[[email protected] sbin]# netstat -nap|grep 3306
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      89870/nginx: master 

用Navicat for MySQ工具测试是否能连接

原文地址:https://www.cnblogs.com/phpdragon/p/12530745.html

时间: 2024-10-04 11:01:59

nginx 代理 tcp协议 mysql 连接的相关文章

nginx代理tcp协议连接mysql

环境: ip 系统 服务 192.168.182.155 centos7.4 安装mariadb 192.168.182.156 centos7.4 安装nginx 一.mariadb安装及配置 1.1 在192.168.182.155安装mariadb yum install mariadb-server mariadb systemctl start mariadb #启动MariaDB systemctl stop mariadb #停止MariaDB systemctl restart

Nginx 代理tcp端口

nginx1.9对TCP协议的代理并不是默认开启的,需要在编译的时候配置 --with-stream 参数:nginx1.90对TCP协议的代理并不是默认开启的,需要在编译的时候配置 --with-stream  相当于之前版本的 nginx_tcp_proxy_module参数 注意的是stream和http平级 --安装Nginx yum -y isntall openssl gcc gcc-c++  pcre*  zlib wget wget http://nginx.org/downlo

Nginx均衡TCP协议服务器案例

Nginx在企业运维中通常用来均衡HTTP协议,例如我们熟知的80.8080.8081等服务.因为大部分的服务都是http请求访问协议,那有时候需要用到TCP协议,如果来实现均衡呢? 默认nginx不支持tcp的负载均衡,需要打补丁,(连接方式:从客户端收到一个连接,将从本地新建一个连接发起到后端服务器.) 接下来正式配置Nginx均衡TCP: wget http://nginx.org/download/nginx-1.6.2.tar.gz wget https://github.com/ya

TCP协议建立连接与释放连接

TCP建立连接三次握手 1. 客户端发出段1,SYN位表连接请求.序号是1000,这个序号在络通讯中作临时的地 址,每发个数据字节,这个序号要加1,这样在接收端可以根据序号排出数据包的正确顺 序,也可以发现丢包的情况,另外,规定SYN位和FIN位也要占个序号,这次虽然没发数 据,但是由于发了SYN位,因此下次再发送应该序号1001. mss表最段尺,如果 个段太,封装成帧后超过了链路层的最帧长度,就必须在IP 层分,为了避免这种情 况,客户端声明的最段尺,建议服务器端发来的段不要超过这个长度.

nginx代理TCP端口

1.升级nginx 版本至1.9.0以上 升级流程参考 nginx平滑升级 2.配置编译的时候需要加上 1 ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with-stream 2 make 3 cp ./objs/nginx /usr/local/nginx/sbin/ 4 make upgrade 3.修改配置文件 stream { upstream cloudsoc

nginx代理websocket协议

以下是代码段.location /wsapp/ {     proxy_pass http://wsbackend;     proxy_http_version 1.1;     proxy_set_header Upgrade $http_upgrade;     proxy_set_header Connection "upgrade"; }

简单测试nginx1.90做TCP协议负载均衡的功能

最近工作中需要做TCP层面的负载均衡,以前网站用的反向代理nginx只支持应用层的负载均衡,对于TCP协议是无能为力的,需要使用LVS(linux虚拟服务器). LVS的特点是高性能和极复杂的配置.对网络环境的要求比较高.最近苦于LVS的配置测试,网上的文档和社区都比较少,按照各种教程配置,TCP报文均无法连通,再往下深究就要去研究公司虚机的网络结构了... 在寻找LVS配置调试方法时,看到一篇最近的文章讲4月28日刚刚发布的nginx1.90,添加了支持TCP协议的负载均衡的,如果只是需要做T

Nginx 配置TCP代理

Nginx 配置TCP代理 nginx 的功能非常强大,其中作为代理服务器是非常常用的功能,但是之前的nginx代理只能做七层代理,也就说是基于应用层面的代理,TCP层面的代理一般会配合haproxy 来使用.但是自从nginx 1.9 以后通过stream模块实现了tcp 代理功能,无需其他软件配合即可实现四层代理和七层代理,即:访问该服务器的指定端口,nginx就可以充当端口转发的作用将流量导向另一个服务器,同时获取目标服务器的返回数据并返回给请求者.nginx的TCP代理功能跟nginx的

TCP协议详解(TCP建立连接与断开连接)

TCP是面向连接的.可靠的进程到进程通信的协议.它提供的是全双工(双向可传输)的服务,每个TCP都有发送缓存和接受缓存,用来临时存储数据. 1.TCP报文段:TCP把若干个字节构成一个分组,称为报文段(segment).TCP报文段封装在IP数据报中,TCP报文段的首部格式如下图所示: 首部长度为20~60个字节,一下是各个字段的含义:①:源端口号:它是16位字段,为发送发进程对应的端口号:②:目标端口号:它是16位字段,对应的是接收端的进程,接收端收到数据段后,根据这个端口号来确定把数据送给哪