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
Но я не знаю, можете ли вы определить порт для разных маршрутов, но, возможно, вы можете взглянуть на конфигурацию маршрутизатора.