如何配置 apache 在同一台机器上使用 FE 和 BE?

Posted

技术标签:

【中文标题】如何配置 apache 在同一台机器上使用 FE 和 BE?【英文标题】:How to configure apache to work with FE and BE on same machine? 【发布时间】:2016-01-16 06:41:07 【问题描述】:

我需要配置一个 apache 服务器来为同一台机器的前端和后端(都是 php)提供服务。 以下是要考虑的:

后端为 RESTful,API 由防火墙保护,仅允许本地主机访问(仅在实施 API 令牌之前作为临时解决方案)。 目前前端与后端在同一台机器上,但会在一段时间后移动到另一台服务器上。 静态内容将从后端机器传送

我当前的配置如下:

名称虚拟主机 *:80 名称虚拟主机 *:81 服务器名称 www.myServer.de ServerAdmin webmaster@localhost DocumentRoot /data/fe/public 选项 FollowSymLinks AllowOverride 无 订单拒绝,允许 全部拒绝 选项 FollowSymLinks AllowOverride AuthConfig 命令允许,拒绝 允许所有人 重写引擎开启 # 重定向尾部斜杠... 重写规则 ^(.*)/$ /$1 [L,R=301] # 处理前端控制器... RewriteCond %REQUEST_FILENAME !-d RewriteCond %REQUEST_FILENAME !-f RewriteRule ^ index.php [L] ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ AllowOverride 无 选项 +ExecCGI -MultiViews +SymLinksIfOwnerMatch 命令允许,拒绝 允许所有人 错误日志 $APACHE_LOG_DIR/error_fe.log CustomLog $APACHE_LOG_DIR/access_fe.log 组合 ServerAdmin webmaster@localhost DocumentRoot /data/be/public 选项 FollowSymLinks AllowOverride 无 订单拒绝,允许 全部拒绝 选项 FollowSymLinks AllowOverride AuthConfig 命令允许,拒绝 允许所有人 重写引擎开启 # 重定向尾部斜杠... 重写规则 ^(.*)/$ /$1 [L,R=301] # 处理前端控制器... RewriteCond %REQUEST_FILENAME !-d RewriteCond %REQUEST_FILENAME !-f RewriteRule ^ index.php [L] 错误日志 $APACHE_LOG_DIR/error_be.log CustomLog $APACHE_LOG_DIR/access_be.log 组合

如何配置后端以提供静态内容而不受访问限制,但要确保 API 安全。或者它会是通过应用程序传递静态内容的替代方案吗?

我正在使用

Debian 8.1 Apache 2.4

【问题讨论】:

我投票结束这个问题,因为它不是一个编程问题。在 unix.stackexchange.com 或超级用户可能会更好 【参考方案1】:

我最终配置了一个反向代理来传递静态内容。我在前端 vhost 中添加了以下几行:

ProxyPreserveHost On

ProxyPass /images http://<BE-IP>:81/files/images
ProxyPassReverse /images http://<BE-IP>:81/files/images

使用此配置,后端仍由防火墙保护,不受外部请求的影响,但允许 FE 请求图像。

【讨论】:

以上是关于如何配置 apache 在同一台机器上使用 FE 和 BE?的主要内容,如果未能解决你的问题,请参考以下文章

我配置好一个tomcat,ssl证书,如何给同一台机器上的其他tomcat配置证书,默认的80,443端口已经被占用。

XAMPP、Apache 和 IIS 在同一台机器上

在同一台机器上启动多个tomcat服务

在同一台 linux 机器上使用 zope-plone 安装 xampp 的指南?

如何在同一台服务器上跨多个域维护 PHP 会话?

如何配置 IIS,使我在同一台机器上运行的 ASP.NET Web 应用程序可以互相 POST,但公众不能 POST?