nginx之TCP反向代理

实现Nginx tcp负载均衡

Nginx在1.9.0版本开始支持tcp模式的负载均衡,在1.9.13版本开始支持udp协议的负载,udp主要用于DNS的域名解析,其配置方式和指令和http 代理类似,其基于ngx_stream_proxy_module模块实现tcp负载,另外基于模块ngx_stream_upstream_module实现后端服务器分组转发、权重分配、状态监测、调度算法等高级功能。

nginx TCP反向代理mysql及redis

[root@app ~]# vim /apps/nginx/conf/tcp/mysql.conf
stream {        #定义stream;TCP模块是和HTTP一样的一个独立模块,所以不能设置在HTTP里面,设置在一个单独的配置文件。
   upstream mysql-server {    #定义后端服务器
       server 192.168.38.37:3306 max_fails=3 fail_timeout=30s;     #定义具体server
   }

   upstream redis-server {
       server 192.168.38.47:6379 max_fails=3 fail_timeout=30s;
   }

   server {     #定义server
       listen 3306;                  #监听本机所有IP的3306端口
       proxy_connect_timeout 30s;    #连接超时时间
       proxy_timeout 30s;            #转发超时时间
       proxy_pass mysql-server;      #转发到具体服务器组
   }

   server {
       listen 192.168.38.27:6379;    #监听在本机的192.168.38.27的6379端口
       proxy_connect_timeout 30s;
       proxy_timeout 30s;
       proxy_pass redis-server;
   }
}
TCP反向代理是基于IP和端口号;写完这个配置文件,需要在主配置文件的全局配置中添加 include /apps/nginx/conf/tcp/*.conf;这样一行,让nginx读取tcp目录下的配置文件,这个设置不要设置在http模块中,tcp和http是两个独立的模块,不要设置在一起。

猜你喜欢

转载自www.cnblogs.com/dongzhanyi123/p/12081473.html