2019独角兽企业重金招聘Python工程师标准>>>
在尝试在uliweb中使用gevent开发聊天室时,已经在网上搜到nginx是支持websocket的代理的,不过应该不支持集群模式。不过当时没有试过,今天试了一下,在普通的反向代理是没有问题的。
nginx对websocket的支持,只要在配置中如下配置:
location /chat/ {proxy_pass http://backend;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";
}
即加后面三行配置。
我原本想结合uwsgi+gevent支持来测试聊天室(chatroom)程序,不过,因为这个程序使用了gevent-socketio,它会在启动服务后向environ中注入一个socketio的对象(因为我没有研究是不是这块是不是可以不依赖于socketio server来生成),所以没办法直接使用uwsgi+gevent来处理,所以还是单独启动了gevent-socketio服务。这样,上面的backend就是gevent服务了。