当前位置:   article > 正文

Nginx反向代理与负载均衡

Nginx反向代理与负载均衡

Nginx命令


# 查看nginx版本
nginx -v
# 检查nginx配置文件语法是否正确
nginx -t
# 指定使用的配置文件
nginx -c file
# 停止
nginx -s stop 
# 安全退出
nginx -s quit
# 重新加载配置文件
nginx -s reload
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

代理nacos集群


upstream nacos-cluster {
    server 127.0.0.1:8845 weight=1;
	server 127.0.0.1:8846 weight=2;
	server 127.0.0.1:8847 weight=3;
}

server {
    listen       80;
    server_name  localhost;

    location /nacos {
        proxy_pass http://nacos-cluster;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

配置文件


  • 全局配置选项
    worker_processes : 指定工作进程的数量,用于处理客户端请求
    error_log: 指定错误日志文件的路径和级别
    events: 设置事件模型,包括使用的事件驱动器和连接数
    http: 指定http相关的配置选项
  • http配置选项
    server: 配置虚拟主机,指定监听的IP地址和端口号
    location: 配置请求匹配规则和处理方式
    proxy_pass: 配置反向代理,将请求转发到指定的后端服务器
    root: 指定静态文件的根目录
    index: 指定默认的索引文件
    try_files: 指定查找文件的规则

location指令


  • 精确匹配: 使用=前缀,例如location = /about,只匹配精确路径为/about的请求。
location = /about {  
    # 处理/about请求的配置  
}
  • 1
  • 2
  • 3
  • 前缀匹配: 默认情况下,location配置是前缀匹配,例如location /path,匹配以/path开头的请求。如果有多个前缀匹配,Nginx会按照配置中的顺序进行匹配,并使用第一个匹配成功的location。
location /static {  
    # 处理以/static开头的请求  
}
  • 1
  • 2
  • 3
  • 正则匹配: 使用~前缀,例如location ~ \.php$,匹配以.php结尾的请求。还可以使用~*前缀进行不区分大小写的正则匹配。如果有多个正则匹配,Nginx会按照正则表达式的顺序进行匹配,并使用第一个匹配成功的location。
location ~ \.php$ {  
    # 处理以.php结尾的请求  
}
  • 1
  • 2
  • 3
  • 最长前缀匹配: 使用^~前缀,例如location ^~ /path,匹配以/path开头的请求,并停止匹配其他location配置。这可以用于避免正则匹配的复杂性和性能开销,同时确保某些路径具有更高的优先级。
location ^~ /images/ {  
    # 处理以/images/开头的请求,并停止匹配其他location  
}
  • 1
  • 2
  • 3

负载均衡规则


  • 轮询 (默认)
	upstream nacos {
		server 127.0.0.1:8845 ;
		server 127.0.0.1:8846 ;
		server 127.0.0.1:8847 ;
	}
  • 1
  • 2
  • 3
  • 4
  • 5
  • weight

weight 代表权重, 默认为 1,权重越高被分配的客户端越多

	upstream nacos {
		server 127.0.0.1:8845 weight=1;
		server 127.0.0.1:8846 weight=2;
		server 127.0.0.1:8847 weight=3;
	}
  • 1
  • 2
  • 3
  • 4
  • 5
  • ip_hash

ip_hash 每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器

	upstream nacos {
		ip_hash;
		server 127.0.0.1:8845 ;
		server 127.0.0.1:8846 ;
		server 127.0.0.1:8847 ;
	}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • fair

fair(第三方),按后端服务器的响应时间来分配请求,响应时间短的优先分配。

	upstream nacos {
		fair;
		server 127.0.0.1:8845 ;
		server 127.0.0.1:8846 ;
		server 127.0.0.1:8847 ;
	}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • Least Connections

Nginx会选择当前活动连接数最少的后端服务器来处理请求。

http {  
    upstream backend {  
        least_conn;  
        server backend1.example.com;  
        server backend2.example.com;  
    }  
  
    server {  
        listen 80;  
  
        location / {  
            proxy_pass http://backend;  
        }  
    }  
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • Backup

如果所有非备份服务器都宕机或繁忙,请求将被发送到标记为backup的服务器。

http {  
    upstream backend {  
        server backend1.example.com;  
        server backend2.example.com backup;  
    }  
  
    server {  
        listen 80;  
  
        location / {  
            proxy_pass http://backend;  
        }  
    }  
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/217101
推荐阅读
相关标签
  

闽ICP备14008679号