



A、B、C三个老师,他们都要帮助一个班级的学生解决课堂作业中的问题
老师A采用从第一排开始一个学生一个学生轮流解答的方式,老师A浪费了很多时间,并且有的学生作业还没有完成老师就来了,反反复复效率极慢
老师B是一个忍者,他发现老师A的方法行不通,于是他使用了影分身术,分身出好几个自己同一时间去帮好几个同学回答问题,最后还没回答完,老师B消耗光了能量累倒了
老师C比较精明,他告诉学生,谁完成了作业举手,有举手的同学他才去指导问题,他让学生主动发声,分开了“并发”


user #系统使用用户
worker_processes #worker进程数,一般情况与CPU核数保持一致
error_log #nginx的错误日志
pid #nginx启动时的pid
events { #事件区块开始
worker_connections #每个进程允许最大连接数
use #nginx使用的内核模型
}
http {
#设置日志模式
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
# Nginx访问日志存放位置
access_log /var/log/nginx/access.log main;
sendfile on; #开启高效传输模式
tcp_nopush on; #减少网络报文段的数量
tcp_nodelay on;
keepalive_timeout 65; #保持连接的时间,单位秒
types_hash_max_size 2048;
include /etc/nginx/mime.types; #文件扩展名与类型映射表
default_type application/octet-stream; #默认文件类型
#加载子配置项,配置另一个配置文件的位置
include /etc/nginx/conf.d/*.conf;
server { #向下看
}
}
http {
#Http配置项目...
#Server段配置信息
server {
listen 80; #配置监听的端口
server_name localhost; #配置监听的域名主机名
#location段配置信息
location / {
root /usr/share/nginx/html; #网站根目录
index index.html index.htm; #默认首页文件
deny 172.168.22.11; #禁止访问的IP地址,可以为all
allow 172.168.33.44; #允许访问的IP地址,可以为all
}
error_page 500 502 503 504 /50x.html; #5xx状态码对应的访问页面
error_page 400 404 error.html;
}
server{ #可以有多个server
... ...
}
}
#服务器列表
upstream balanceServer {
#server 宿主机IP:服务Port;
server 192.168.10.100:8090;
server 192.168.10.100:8091;
server 192.168.10.100:8092;
}
server {
listen 80; #虚拟机服务端口
#防止域名冲突,需配置域名映射 C:\Windows\System32\drivers\etc\hosts中做域名映射:127.0.0.1 IPAddr
server_name IPAddr; #多个用,分开
location /api {
proxy_pass http://balanceServer; #负载均衡配置
}
#配置讲解
#经过上述配置后,当Client发送http://IPAddr:80/api请求则被nginx拦截到
#IPAddr:80被对应的server拦截
#/api被server下的对应location拦截
#localtion中的balanceServer被负载均衡后从上述3中IP:Port配置中选择一种替换
#最终请求变成http://192.168.10.100:8090/api
}
1.轮询(默认),按事件先后顺序,若某服务宕机,可以自动剔除
upstream nginx {
server 172.17.0.4:8081;
server 172.17.0.5:8081;
}
2.权重Weight,权重越大被分到的概率越高,合理有效的利用主机资源
upstream nginx {
server 172.17.0.4:8081 weight=2;
server 172.17.0.5:8081 weight=1;
}
3.ip_hash,同IP访问固定服务,解决动态页面中IP共享问题
upstream nginx {
ip_hash;
server 172.17.0.4:8081;
server 172.17.0.5:8081;
}
4.fair(第三方插件),可根据页面大小或加载时间长短智能的负载均衡
upstream nginx {
server 172.17.0.4:8081;
server 172.17.0.5:8081;
fair;
}
5.url_hash(第三方插件)
location ~ ./*(html|css|js|img|image|images){
root /usr/local/nginx/html;
}
