如何在子路径上运行Symfony Web服务器?

问题描述 投票:0回答:1

我在VM中运行了一个Symfony 4 Web应用程序。

我用bin/console server:start 0.0.0.0:8000启动应用程序。我在VM中打开了端口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服务器来完成它,但我更愿意避免使用它。

谢谢!

php symfony webserver
1个回答
0
投票

像这样的东西?

server {
      listen       80;
      server_name  foobar.com;


      location / {
         proxy_pass      http://127.0.0.1:18080;
         proxy_set_header HOST $host;
         proxy_set_header X-Forwarded-Proto $scheme;
         proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     }

     location /newsletter/ {
         rewrite /newsletter/(.*) /$1  break;

         proxy_pass      http://127.0.0.1:18081;
         proxy_set_header HOST $host;
         proxy_set_header X-Forwarded-Proto $scheme;
         proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     }
}

这里我有2个应用程序:/ - > wordpress,/ newsletter < - symfony app

Symfony应用程序在docker容器内运行。

© www.soinside.com 2019 - 2024. All rights reserved.