如果使用 Apache 2.4 mod_proxy 未找到本地资源(404),则有条件代理通过

如果使用 Apache 2.4 mod_proxy 未找到本地资源(404),则有条件代理通过

我正在尝试通过在本地找不到图像时故障转移到生产环境来使我的本地主机和临时环境更漂亮一些。我可以让代理传递工作并始终将请求转发到我们的生产环境,但我不确定如何让虚拟主机在本地检查,然后在出现 404 时有条件地转发到生产环境。

<VirtualHost *:80>
    ServerName media.localhost
    ServerAlias media.localhost
    DocumentRoot /var/www/media-server/
    SSLProxyEngine on
    ProxyPass / https://media.production.com/
</VirtualHost>

另外,我不确定代理传递是否是这里最好的方法?也许 mod_rewrite 更好?

编辑:补充说明,图片路径在数据库中相对于域存储,而图片存储在文件系统中。因此,在提取生产数据时,在本地开发时会出现大量损坏的图片。

答案1

使用 mod_rewrite:

RewriteCond /var/www/media-server/%{REQUEST_URI} -f
RewriteRule - [L]

RewriteRule "/(.*)$" https://media.production.com/$1 [P,QSA]

一定要考虑警告P

编辑:我可能已经给了你足够的理由:你可能正在帮助开发人员对你的生产资源进行 DOS 攻击。在开发过程中会发生疯狂的事情。你可能希望将它们指向非生产资源。

相关内容