Как запустить веб-сервер Symfony в подпуть? - PullRequest
0 голосов
/ 12 сентября 2018

У меня есть веб-приложение Symfony 4, работающее внутри виртуальной машины.

Я запускаю приложение с 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 на прокси хоста в отличие от /path на локальном сервере ВМ).

Моя идея обойти эточтобы каждый подпроект в ВМ работал, используя свой собственный базовый путь (например, http://vmX:8000/projectX/).Таким образом, я мог бы генерировать правильные пути, в то время как Router::setTrustedProxies() заботится о генерации URL.

Вопрос: как мне настроить встроенный PHP-сервер Symfony для работы с использованием префикса пути?Я (кажется, я) знаю, как это сделать, используя веб-сервер, работающий на виртуальной машине, но я бы предпочел не использовать его.

Спасибо!

1 Ответ

0 голосов
/ 12 сентября 2018

Как-то так?

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 </p>

Приложение Symfony запускается внутри док-контейнера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...