Nginx做反向代理转发socket的TCP请求

1、socket使用的是TCP/IP协议,编译安装nginx必须启用--with-stream模块。在stream中配置请求转发

./configure  [--prefix=/usr/local/nginx:指定安装目录】  --with-stream 

make

make install 

2、在配置文件nginx.conf中加stream模块

worker_processes  1;
events {
    worker_connections  1024;
}
# 此为TCP转发请求 stream
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" '
                 '$remote_addr $remote_port $server_addr $server_port';

     include ./conf.d/*.tcpstream;

    # 后端指向 server 的 8085 端口 stream_backend 组
    upstream stream_backend {
         server 10.50.2.11:8085;
         server 10.50.2.19:8085;
    }
    # 后端指向 server 的 8090 端口 cns组
    upstream cns {
         server 10.50.2.11:8090;
         server 10.50.2.19:8090;
    }
  server {
        # 本机监听端口 8080
        listen                8080;
        # 请求抛给 stream_backend 组
        proxy_pass            stream_backend;
        access_log logs/host.access.log proxy;
       }
  server {
        # 本机监听端口 8090
        listen                8090;
        # 请求抛给 cns 组
        proxy_pass            cns;
        access_log logs/host.access.log proxy;
       }
}
    # 此为HTTP 转发请求 http
    http {
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
        access_log  /var/log/nginx/access.log  main;
        sendfile            on;
        tcp_nopush          on;
        gzip_comp_level 9;
        gzip_types  text/css text/xml  application/javascript;
        gzip_vary on;
        include             /etc/nginx/mime.types;
        default_type        application/octet-stream;
      # 后端指向 server 的 8585 端口 cns_node 组
      upstream  cns_node {
             server 10.50.2.51:8585 weight=3;
             server 10.50.2.59:8585 weight=3;
        }
       server {
        listen       8585;
        server_name umout.com;
        access_log  /etc/nginx/logs/server02_access.log main;
        location /{
          proxy_pass http://cns_node1;
          include /etc/nginx/proxy.conf;
        }
      }
    }

猜你喜欢

转载自blog.csdn.net/qq_28635317/article/details/106282447