raspi+tornado+nginx+supervisor配置多站点的TCPSERVER

在配置完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服务发布出去了。很好用的哟!

你可能感兴趣的:(学习笔记)