http {
upstream app1 { server 10.10.10.1; server 10.10.10.2; } server { listen 80; location / { proxy_pass http://app1; } }
}
upstream app1用来指定一个服务器组,该组的名字是app1,包含两台服务器。在指定服务器组里面包含的服务器时以形式“server ip/domain:port”的形式指定,其中80端口可以忽略。然后在接收到请求时通过“proxy_pass http://app1”把对应的请求转发到组app1上。Nginx默认的负载均衡算法就是循环轮询,如上配置我们采用的就是循环轮询,其会把接收到的请求循环的分发给其包含的(当前可用的)服务器。使用如上配置时,Nginx会把第1个请求给10.10.10.1,把第2个请求给10.10.10.2,第3个请求给10.10.10.1,以此类推。
upstream app1 { least_conn; server 10.10.10.1; server 10.10.10.2; }
upstream app1 { ip_hash; server 10.10.10.1; server 10.10.10.2; }
upstream app1 { server 10.10.10.1 weight=3; server 10.10.10.2; }
3.、为什么不使用多线程?
Apache: 创建多个进程或线程,而每个进程或线程都会为其分配cpu和内存(线程要比进程小的多,所以worker支持比perfork高的并发),并发过大会榨干服务器资源。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/173657.html原文链接:https://javaforall.net
