如何配置 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端口已经被占用。