1.nginx代理服务器
初创公司、小公司一般只有一台服务器,而开发语言多种多样,开发人员鱼龙混杂,一台服务器同时跑各个语言的服务器,会产生占用80端口问题,比如同时安装了tomcat apache等,这时我们可以使用nginx作为“话事人”,协调各个语言服务器的关系。
如图,一台阿里云服务器同时部署了JAVA Python PHP项目,这时需要nginx来协调,nginx监听80端口,通过域名来进入各个网站,nginx和tomcat通过内部8080端口通信,和uwsgi通过1238通信等。
2.nginx负载均衡
假如使用twisted做tcp udp等服务端,单台服务器很容易达到并发瓶颈,如一台高配服务器,可以处理10万并发,那么百万级并发怎样处理呢?
这时可以使用nginx负载均衡特性,将连接压力均分给10台服务器,就可以实现百万并发了。
举例30万个物联网设备指向了服务器8000端口,使用nginx+twisted处理,买了一个机房的4台服务器:
在nginx配置文件,http mail同级增加stream配置
stream {
upstream tcp_server {
server 192.168.0.101:8001;
server 192.168.0.102:8001;
server 192.168.0.103:8001;
}
server {
listen 8000;
proxy_pass tcp_server;
}
}
这样就实现了三台服务器均衡处理这30万台设备。