gpt4 book ai didi

nginx - 使用 NGINX 进行动态路由

转载 作者:行者123 更新时间:2023-12-02 04:22:23 26 4
gpt4 key购买 nike

我是 NGINX 的业余爱好者,我想将 NGINX 设置为我的 Web 服务器的反向代理。我想知道NGINX这些东西如下所列:

当浏览器发送 URL 为 http://nginxproxy.com/client/1.2.3.4/ 的请求时,这个请求应该传递给IP为1.2.3.4 http://1.2.3.4/的客户端,浏览器仍应显示 URL nginxproxy/client/1.2.3.4/同样的情况:

  • nginxproxy.com/client/2.3.4.5 -->//2.3.4.5
  • nginxproxy.com/client/2.3.4.6 -->//2.3.4.6

所有其他不符合该模式的请求都应该发送到我的默认服务器 myserver。

我可以使用 NGINX 来做到这一点吗?

经过研究,我尝试了以下配置:但不幸的是,它不起作用。浏览器地址栏地址已更改为http://1.2.3.4,而不是预期的http://nginxproxy.com/client/1.2.3.4。

server {
listen 80;

location ~ ^/client {
rewrite ^/client/?(.*) /$2 break;
proxy_pass $scheme://$1;
}
location / {
proxy_pass http://myserver.com;
}
}

非常感谢任何帮助。

最佳答案

做了更多研究并根据@Cole 输入,这是我的答案:

location ~ ^/client/(?<site>[^/]+)/? {
rewrite ^.*\/client\/(?<site>[^\/]+)\/?(.*) /$2 break; #passing all the remaining request URIs after <site> group to client server
proxy_pass $scheme://$site;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host/client/$site; #this help to keep the address as it is on the browser's address bar
proxy_set_header X-Forwarded-Proto $scheme;
}

location / {
proxy_pass $scheme://myserver.com
}

关于nginx - 使用 NGINX 进行动态路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29424851/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com