我正在使用 Plesk 托管我的域,即 he.designated.site。我正在尝试在此子域上托管 Strapi 应用程序和 Laravel 应用程序。挑战在于我希望可以在 /admin 路径访问 Strapi 应用程序,而应该可以在根路径 / 访问 Laravel 应用程序。此外,Strapi 请求可以具有 /ck5editor/xxxx 等路径,我需要由 Strapi 应用程序处理这些路径。
我本质上需要在 Plesk 托管的子域中拥有两个容器,其中每个容器的请求都会发送到自身。在 Plesk 中设置此配置的最佳方法是什么?
以下是一些具体细节和要求:
我研究了反向代理设置,但我愿意接受不同的解决方案和最佳实践,以在 Plesk 中实现此配置。任何有关如何在 Plesk 环境中有效设置此功能的指导或建议将不胜感激。
提前感谢您的帮助!
在 Plesk 中使用基于特定路径的路由在单个域上设置多个应用程序(如 Strapi 和 Laravel)可能具有挑战性,但通过正确的配置是可行的。
您的目标是将流量引导至
/admin
并将某些其他路径引导至 Strapi,而所有其他流量均流向您的 Laravel 应用程序。此设置通常涉及配置 反向代理或自定义重写规则。
以下是在 Plesk 中实现此目的的一般方法:
第 1 步:在容器或目录中设置应用程序 Strapi:将 Strapi 应用程序安装在目录或容器中。确保将其配置为在特定端口上运行(如果尚未配置)。 Laravel:在根目录中安装您的 Laravel 应用程序(public_html 或 httpdocs,具体取决于您的 Plesk 设置)。
第2步:配置Nginx(反向代理) Plesk 允许自定义 Nginx 配置。您需要将 Nginx 设置为反向代理,以根据请求路径将流量引导至正确的应用程序。
访问 Plesk 面板:登录您的 Plesk 面板。
转到域设置:导航至
the.designated.site
的设置。
Nginx 设置:找到自定义 Nginx 设置的部分。它通常位于“
Apache & nginx Settings
”部分。
自定义配置:您需要添加自定义配置规则。这是一个基本模板:
location /admin {
proxy_pass http://localhost:<STRAPI_PORT>;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /ck5editor/ {
proxy_pass http://localhost:<STRAPI_PORT>;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location / {
# This is for Laravel
try_files $uri $uri/ /index.php$is_args$args;
}
将
<STRAPI_PORT>
替换为运行 Strapi 的端口号。确保 location / block
位于末尾,因为它充当所有其他请求的后备。
保存并测试:保存更改后,测试配置。确保对
he.designated.site/admin
和 he.designated.site/ck5editor/xxxx
的请求正确路由到 Strapi,而其他请求则转到 Laravel。
/admin
)。某些应用程序需要针对子路径部署进行特定配置。
Laravel:Laravel 应该照常工作,但始终进行测试以确认。访问
he.designated.site/admin
和各种 Strapi 端点以确保它们正确加载。
访问您的 Laravel 应用程序的路由以确认它们正在正确服务。
重要注意事项 SSL 证书:如果您使用 HTTPS,请确保您的 Nginx 配置能够正确处理 SSL。您可能需要在 Nginx 配置中添加 SSL 指令。
Plesk 更新:请注意,Plesk 更新或控制面板中的某些更改可能会覆盖自定义 Nginx 配置。保留配置备份是一个很好的做法。
此设置假设您对 Nginx 和 Plesk 有很好的了解。如果您不熟悉这些技术。此外,具体步骤可能会有所不同,具体取决于您的 Plesk 版本和服务器配置。