(1)Nginx会根据过来的http请求头里的Host字段里的值来判断使用哪个server{}:如果请求头里没有host字段或者host字段里面的值和NGINX配置文件里的server{server_name}都不匹配,那么使用默认的server来处理这个请求
(2)server_name字段对应的是http请求头里面的Host字段
(3)server{}里的listen监听的是:发送过来http请求的进程(大部分是浏览器)的端口(如果是http请求则为80端口,如果是HTTPS请求则为443端口),并不是NGINX自己的端口号;NGINX会根据http请求头的host字段里的值,和发送过来的http请求的进程来决定使用哪个server{}来处理http请求。
反向代理和负载均衡也会根据上面的情况进行配置:#负载均衡配置,IP为129的机器配置高,所以给他的数字的27,就是让它多处理
upstream storage.test {
server 10.210.65.129:80 weight=27;
server 10.210.65.130:80 weight=1;
}
#负载均衡配置
upstream tracker.test {
server 10.210.65.52:80 weight=7;
server 10.210.65.53:80 weight=2;
}
#文件的存储
server {
listen 80;
server_name aaa;
location / {
#http:://后面的内容是自己定义,对应上面upstream的名字
proxy_pass http://storage.test;
}
}
#文件服务器tracker
server {
listen 80;
server_name bbb;
location / {
#http:://后面的内容是自己定义的,对应上面upstream的名字
proxy_pass http://tracker.test;
}
}