upstream rsshub1024 {
server vercel.getrss2021.xyz;
server rsshub.rssforever.com;
server rsshub.app;
}
location /rsshub/ {
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $proxy_host; # 这里值是 rsshub1024
proxy_redirect off;
proxy_pass http://rsshub1024/;
}
需求就是反代 + 负载均衡多个 RSSHub 实例,然后选中某个域名时同时能提取到该域名传值给 Host
使用 map 改写如下,如遇这样写的话,问题就变成了,如何把 $args
换成随机取值的东西从而使$pick
取值随机;
# 这里好像不能用 set
map $args $pick {
default rss.shab.fun;
pick2 rsshub.app;
}
upstream rss.shab.fun {
server rss.shab.fun;
}
upstream rsshub.app {
server rsshub.app;
}
server {
listen 80 default_server;
server_name _ *.vm docker;
root "/app";
index index.php;
# 这里可以用 set 但是不能用 map ??
location /rsshub/ {
# default_type text/plain;
# echo pick: $pick;
proxy_set_header Host $pick;
proxy_redirect off;
proxy_pass http://$pick/;
}
}
1
PriestTomb 2021-10-20 09:40:17 +08:00
虽然没理解你说的“选中某个域名时”指的是什么,不过你的问题大概可以用 if 语法实现,或者用 map
|