在配置完webserver后,在与硬件通讯时经常会用到TCPSERVER服务。 又开始想当然的觉得在此框架下百分百可以实现,没有交流没有指导,觉得可以便 一定可以,还真的可以。下面是具体的实现方法。 nginx:做反向代理,发布对外端口 supervisor:做进程管理,自动启动相应的tornado文件 这两个文件的配置需在原有多端口WebServer上做进一步的配置 nginx.conf的配置 http:是对httpserver的配置 stream:是对TCP的配置 stream{ upstream (supervisor/conf/下的文件名){ hash $remote_addr consistent; server IP:port1(tornado中所写的) weight=5 max_fails=3 fail_timeout=30s; } server{ listen port2(nginx监听的端口,通过此端口传送tcp信息到IP:port1) proxy_connect_timeout 1s; proxy_timeout 3S; proxy_pass supervisor/conf/下的文件名; proxy_buffer_size 32k; } } supervisord.conf的配置 [include] files=/etc/supervisor/conf.d/*.conf 此处的配置,是引用conf下的所有conf文件 当添加了新的tornado端口服务(无论是httpserver,还是tcpserver)都需在此文件夹下建立配置文件。 [group:文件名] programs=一个端口服务名,另一个端口服务名 [program:端口服务名] command=python .py文件所在的路径 --port=port1(tornado服务端口) director=路径 stdout_logfile=log路径 autostart=true autorestart=true redirect_stderr=true stopsignal=QUIT 保存后,可以用supervisorctl reload, 也可以用supervisord -c /etc/supervisor/supervisord.conf,来重启。 在重启前也可以用systemctl stop supervisor.service. 总之按上面的方法做完后就可以把tornado编写的tcpserver服务发布出去了。很好用的哟!
