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

问题描述:

我需要配置一个Apache服务器来为同一台机器上的前端和后端(都是php)提供服务。 下面是要考虑:如何配置Apache以在同一台机器上使用FE和BE?

  • 后端是RESTful的和API由防火墙只允许本地主机访问安全的(仅作为临时的解决方案,直到API令牌被实现)。
  • 前端与后端位于同一台机器上,但在一段时间内将移至另一台服务器。
  • 静态内容将来自后端机器

我目前的配置看起来交付像以下:

 
    NameVirtualHost *:80 
    NameVirtualHost *:81 


     ServerName www.myServer.de 

     ServerAdmin [email protected] 
     DocumentRoot /data/fe/public 

     
       Options FollowSymLinks 
       AllowOverride None 
       Order Deny,Allow 
       Deny from All 
     
     
       Options FollowSymLinks 
       AllowOverride AuthConfig 
       Order allow,deny 
       allow from all 

       RewriteEngine On 

      # Redirect Trailing Slashes... 
      RewriteRule ^(.*)/$ /$1 [L,R=301] 

      # Handle Front Controller... 
       RewriteCond %{REQUEST_FILENAME} !-d 
       RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.php [L] 
     

     ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 
     
       AllowOverride None 
       Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch 
       Order allow,deny 
       Allow from all 
     

     ErrorLog ${APACHE_LOG_DIR}/error_fe.log 
     CustomLog ${APACHE_LOG_DIR}/access_fe.log combined 



ServerAdmin [email protected] 
     DocumentRoot /data/be/public 

     
       Options FollowSymLinks 
       AllowOverride None 
       Order Deny,Allow 
       Deny from All 
     
     
       Options FollowSymLinks 
       AllowOverride AuthConfig 
       Order allow,deny 
       allow from all 

       RewriteEngine On 

      # Redirect Trailing Slashes... 
      RewriteRule ^(.*)/$ /$1 [L,R=301] 

      # Handle Front Controller... 
       RewriteCond %{REQUEST_FILENAME} !-d 
       RewriteCond %{REQUEST_FILENAME} !-f 
       RewriteRule^index.php [L] 
    

     ErrorLog ${APACHE_LOG_DIR}/error_be.log 
     CustomLog ${APACHE_LOG_DIR}/access_be.log combined 

如何配置后端提供静态内容,而无需访问限制,但保持固定的API 。或者它可以通过应用程序提供静态内容吗?

我使用

  • 的Debian 8.1
  • 的Apache 2.4
+0

我投票结束这个问题作为题外话,因为它不是一个编程问题。这可能会更好在unix.stackexchange.com或超级用户 –

我结束了配置反向代理交付静态内容。我添加以下行到我的虚拟主机前端:

ProxyPreserveHost On 

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

该配置下,后端仍然受到来自外部的请求防火墙森严,但允许FE请求图像。