Symfony2: используйте другой порт для Rest API

В настоящее время я запускаю проект (Symfony2), в котором мне нужно использовать другой порт для HTTP-коммуникации REST-API (JSON/XML), чем обычный HTML-контент.

Это возможно? И что такое лучшая практика? Можно ли это решить с помощью (Symfony-) маршрутизации? Цель состоит в том, чтобы предоставить REST-API только для "внутреннего" использования (трафик, поступающий из внутреннего соединения Ethernet) и "заблокировать" трафик, исходящий из внешнего соединения.

Дополнительная информация:

Я добавляю маршрут /api/user, например, для User Rest API и /api/projects для Project Rest API.

Могу ли я сделать что-то подобное?

<VirtualHost *:81>
    DocumentRoot /var/www/html/[Symfony-Folder]/web/api
</VirtualHost>

2 ответа

Вы можете сделать что-то вроде этого, я думаю:

<VirtualHost *:80>
ServerName mydomain.tld/api

ProxyRequests Off
<Proxy *>
        Order deny,allow
        Allow from all
</Proxy>
    ProxyPass / http://localhost:81/
    ProxyPassReverse / http://localhost:81/
</VirtualHost>

Вы прослушиваете порт 80, но перенаправляете трафик, который соответствует пути /api, на другой порт.

Возможно, вы можете попробовать в вашей конфигурации apache сопоставить ваш маршрут mydomain.tld/api с другим портом.

Также в вашем конфигурационном файле вы можете настроить порт по умолчанию следующим образом:

# router configuration
router:
    ...
    http_port:            81

Но я не знаю, можете ли вы определить порт для разных маршрутов, но, возможно, вы можете взглянуть на конфигурацию маршрутизатора.

Другие вопросы по тегам