使用Apache作为前端服务器来提供图像,并将其作为后端服务器之间的代理

时间:2016-06-21 18:50:22

标签: apache playframework proxy

我的应用程序是使用PlayFramework构建的。它在端口9000上运行,Apache代表它之间的代理 - 它将来自端口80的请求转发到我的Play应用程序。

Apache配置:

<VirtualHost *:80>
  ProxyPreserveHost On
  ServerName 127.0.0.1:9000
  ProxyPass  /excluded !
  ProxyPass / http://127.0.0.1:9000/
  ProxyPassReverse / http://127.0.0.1:9000/
</VirtualHost>

我的应用程序可以处理文件上传到服务器。现在,我需要能够将这些文件显示给客户端。

我可以使用此配置实现此目的:

<VirtualHost *:80>
  ProxyPreserveHost On
  ServerName 127.0.0.1

  # configure static file serving
  DocumentRoot /srv/appname/web
  <Directory /srv/appname/web>
    Require all granted
  </Directory>

  # rewrite incoming requests
  RewriteEngine On
  RewriteCond /srv/appname/web%{REQUEST_FILENAME} !-f
  RewriteRule ^/(.*)$ http://localhost:8080/appname/$1 [proxy,last]
</VirtualHost>

现在,客户可以请求http://some.ip.address/image.png这样的图像,但它可以正常工作。

问题是我需要运行我的Play应用程序并能够同时提供这些图像 - 客户端必须能够在我的播放应用程序中查看上传的图像。

我怎么能实现这个目标?当用户键入http://www.some.ip.address/uploads/image.png时,如何向图片发出请求,并在用户输入http://www.some.ip.address/main时向我的Play应用发出请求?

0 个答案:

没有答案