我宣告了這些上游:
upstream upstream_1 {
server some_container_1:8000;
}
upstream upstream_2 {
server some_container_2:8001;
}
這個服務器:
server {
listen 7000;
server_name localhost;
location /path {
uwsgi_pass upstream_1;
}
}
其中some_container_1和some_container_2都基于相同的影像(因此在相同的路徑上提供相同的 api),但在 env vars 和其他不相關的東西上有所不同。我想分叉所有流量的 1%localhost:7000/path以“按原樣”交付upstream_2,99% 保持在upstream_1. 兩種情況都應保持收到的請求,既不改變路徑也不改變標頭
使用split_clients我可以在將請求轉發到單個上游之前設定哪個路徑,這不是我的情況。
在這里,叉子是在服務器之間的上游內部完成的,而不是在上游之間的位置分割內部,正如我需要的那樣。
我可以定義上游的上游嗎
upstream compound_upstream_1 {
upstream upstream_1 weight=99;
upstream upstream_2;
}
使用它
server {
listen 7000;
server_name localhost;
location /path {
uwsgi_pass compound_upstream_1;
}
可以用 nginx 做到這一點嗎?考慮到這一點,實作這一目標的標準應該是哪種方式?
uj5u.com熱心網友回復:
我不明白,是什么阻止您直接在上游塊中使用服務器名稱?
upstream compound_upstream_1 {
server some_container_1:8000 weight=99;
server some_container_2:8001;
}
server {
listen 7000;
server_name localhost;
location /path {
uwsgi_pass compound_upstream_1;
}
}
或者我誤解了你的問題?
uj5u.com熱心網友回復:
可以使用負載平衡器來完成此操作:https ://docs.nginx.com/nginx/admin-guide/load-balancer/http-load-balancer/
我不確定你的“1%”場景的權重是多少,但你可以玩弄它并根據自己的喜好進行調整。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/487224.html
標籤:nginx nginx-反向代理 nginx位置 nginx-上游
下一篇:Ngninx位置回傳404
