首页 > 解决方案 > 如何以 DRY 方式在包含共享路径的 2 个应用程序之间进行代理

问题描述

我是新手,Ngnix我正在寻找一些建议以避免重复定位块并保留功能。我曾经有一个反应应用程序react.mydomain.cc 在我的Nginx配置文件中,我正在代理从/react.mydomain.cc

location / {
    try_files $uri @approute;
}

location @approute {

    proxy_ssl_server_name on;

    set $react "http://react.mydomain.cc";

    proxy_pass $react$request_uri;
}

现在,我想用新应用程序替换旧应用程序的一部分,而不必对旧应用程序进行更改。

逻辑是。

如果用户去www.mydomain.cc他应该被代理到新的应用程序http://new-react.mydomain.cc 相同的其他路径,如:

/about
/contact
/blog
/whoiam
/photos

还有一些

这些页面也可以通过其他子域激活,http://react.mydomain.cc/about但不能通过 nginx 域访问,www.mydomain.cc

如果用户去

/notes
/playground
/app/*
/internal/*

他应该被代理到旧应用程序。

示例:用户去www.mydomain.cc/notes并且他被代理到http://react.mydomain.cc/notes。然后他单击链接/abouthttp://new-react.mydomain.cc/about即使旧应用程序具有/about.

谁能帮我避免重复 20 次定位块?我正在尝试以更清洁的方式实现相同的目标。请让我知道是否需要版本来澄清。记住我是新人。

标签: nginxnginx-confignginx-location

解决方案


推荐阅读