[原创] Nginx1.13版本reload过程对TCP包影响的测试
upstream websocket { server localhost:8010; #keepalive 2; } server { listen 81; server_name localhost; location /websocket { proxy_pass http://websocket/; #proxy_http_version 1.1; #proxy_set_header Connection ""; }
stream { upstream tcp_server { server localhost:8012 weight=5; } server { listen 82; proxy_responses 1; proxy_timeout 20s; proxy_pass tcp_server; } }
upstream websocket { server localhost:8010; #keepalive 2; } server { listen 81; server_name localhost; location /websocket { proxy_pass http://websocket/; #proxy_http_version 1.1; #proxy_set_header Connection ""; }
# cat tcp_server.py # -*- coding: utf-8 -*- import SocketServer from SocketServer import StreamRequestHandler as SRH from time import ctime import time import sys reload(sys) sys.setdefaultencoding('utf8') #host = '127.0.0.1' host='127.0.0.1' port = 8012 addr = (host, port) class Servers(SRH): def handle(self): print 'got connection from ', self.client_address self.wfile.write('connection %s:%s at %s succeed!' % (host, port, ctime())) while True: data = self.request.recv(1024) if not data: break #print data cur_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) print "%s RECV from %s, data is:%s" % (cur_time,self.client_address[0],data) self.request.send(data) print 'server is running....' server = SocketServer.ThreadingTCPServer(addr, Servers) server.serve_forever()
# cat server.js console.log("Server started"); var Msg = ''; var WebSocketServer = require('ws').Server , wss = new WebSocketServer({port: 8010}); wss.on('connection', function(ws) { ws.on('message', function(message) { console.log('Received from client: %s', message); ws.send('Server received from client: ' + message); }); });