【问题标题】:Symfony2: Use different port for Rest APISymfony2:为 Rest API 使用不同的端口
【发布时间】:2016-02-25 09:05:16
【问题描述】:

我目前正在启动一个 (Symfony2) 项目,我必须使用不同的端口进行 REST-API (JSON/XML) 的 HTTP 通信,然后使用普通的 HTML 内容。

这可能吗?最佳实践是什么?这可以通过(Symfony-)路由解决吗?目标是提供 REST-API 仅用于“内部”使用(来自内部以太网连接的流量)并“阻止”来自外部连接的流量。

其他信息:

我添加了一个路由 /api/user 例如用户休息 API 和 /api/projects 项目休息 API。

我可以这样做吗?

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

【问题讨论】:

  • 如果你使用像 Guzzle 这样的捆绑包,我想有set port的选项
  • 我认为使用 apache 配置会更好。

标签: api rest symfony https apache-config


【解决方案1】:

我认为你可以这样做:

<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 路径的流量重定向到不同的端口。

【讨论】:

    【解决方案2】:

    也许您可以尝试在您的 apache 配置中将您的 mydomain.tld/api 路由匹配到不同的端口。

    同样在你的配置文件中你可以像这样配置默认端口:

    # router configuration
    router:
        ...
        http_port:            81
    

    但我不知道你是否可以为不同的路由定义一个端口,但也许你可以看看路由器的配置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-05
      • 2015-03-15
      • 1970-01-01
      • 2018-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-04
      相关资源
      最近更新 更多