我已经在 Ubuntu 14.04 vServer 上安装了 apache2。除此之外,我还为在端口 5000 上运行的程序配置了反向代理。现在我有两个问题:
- 如果端口 5000 上的程序没有运行,是否可以显示其他页面?
- 如何在反向代理旁边添加新页面?例如 example.com/newpage。我尝试在文档根目录中创建一个包含 index.html 文件的新目录“newpage”。但那不起作用。
答案1
对 1. + 2 的简短回答:原则上,是的;可能会很棘手,具体取决于您的特定反向代理配置。
一:您可以使用 mod_proxy_balancer 并配置一个由两个成员组成的故障转移群集,您的本地服务监听端口 5000,同一个 apache 上的另一个 VirtualHost 监听任意端口:
<Proxy "balancer://mycluster">
BalancerMember "http://localhost:5000"
BalancerMember "http://localhost:5001" status=+H
</Proxy>
(为了使其正常工作,您必须在服务器上配置一个额外的 VirtualHost 实例来监听端口 5001,并使用通用的内部 RewriteRule 仅响应其索引页。)
二:在不知道您的具体反向代理配置的情况下,我建议将mod_rewrite与mod_proxy结合起来。
RewriteCond "%{REQUEST_URI}" !^/newpage
RewriteRule ^/(.*) balancer://mycluster/$1 [P]
包括上述故障转移配置。
免责声明
- 这些建议均出自我的脑子,可能包含语法和逻辑错误;如果您遇到任何问题,我愿意提供帮助。
- 这些只是配置片段,而不是运行配置。
- 如果不了解您的 Apache 配置,就很难提出有效的解决方案。