首页 > 解决方案 > 在 Nginx 中将子站点添加到父站点的路径

问题描述

为了保持我的代码库模块化,我有两个静态网站 - site_a,它是父站点,和site_b,它可以被认为是一个子站点。我试图找到附加site_b到路径的正确方法site_a,这site_a/path相当于site_b's/目录。

请注意,每个站点实例都有自己的一组静态资源(img、css、js),并且应该从服务器上相应的web目录中引用,并且某些资源的名称可能会有一些重叠(例如。 style.css)和文件夹(例如 /img/..)。

任何帮助指针将不胜感激!

标签: nginx

解决方案


您正在搜索的是 proxy_pass (或者我认为它适用于您的情况)。

site_a 配置:

location = /path {
    return 301 /path/;
}
location = /path/ {
    proxy_pass http://site_b/;
}

如果您只希望它完全像这样,这应该可以工作,请小心,因为 /path 部分由 / 更改,但是如果您需要其余的 url,您可以这样做:

location = /path {
    return 301 /path/;
}

location  /path/ {
    proxy_pass http://site_b/;
}

像这样,site_a/path/pathtoglory/ 将显示 site_b/pathtoglory/。

选择您最喜欢的(或适合您的实际情况)。

可以在此处找到有关特殊配置的 proxy_pass 的更多信息:

https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/


推荐阅读