【发布时间】:2018-09-12 21:03:17
【问题描述】:
我有一个在 VM 中运行的 Symfony 4 Web 应用程序。
我用bin/console server:start 0.0.0.0:8000 启动应用程序。我在虚拟机中打开了 8000 端口,并在主机上运行了一个 nginx 代理服务器。
由于主机上运行着许多虚拟机,我设置了 nginx 来转发这样的请求:
-
https://host/project1/foo/bar->http://vm1:8000/foo/bar -
https://host/project2/subpath->http://vm2:8000/subpath - 等
问题在于 Symfony 没有为资源甚至路由生成正确的路径,因为基本路径不同(主机代理上的 /projectX/path 与 VM 本地服务器上的 /path 相对)。
我绕过这个的想法是让 VM 中的每个子项目都使用自己的自定义基本路径(例如http://vmX:8000/projectX/)运行。这样,我可以生成正确的路径,而 Router::setTrustedProxies() 负责 URL 生成。
问题是:如何配置 Symfony 的嵌入式 PHP 服务器以使用路径前缀运行?我(想我)知道如何使用在 VM 上运行的 Web 服务器来执行此操作,但我宁愿避免使用它。
谢谢!
【问题讨论】: