我的应用程序是使用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应用发出请求?