我正在用 apache 创建一个反向代理框,对此我有一些疑问:
- 我怎样才能从反向代理框而不是实际主机加载一些文件(比如 robots.txt)?
- 允许在代理框中加载 .htaccess 是否明智?代理框的重写规则又如何呢?
- 我应该把重写规则放在哪里?在虚拟主机中还是在 .htaccess 中?如果我允许从代理框加载 .htaccess,那么拥有 2 个 .htaccess 会不会有问题?我认为只会加载其中一个。
- 那么 http 和 https 上的反向代理站点怎么样?我需要一些特殊设置吗?
- 创建反向代理时有什么需要注意的问题吗?我已经知道如何使用 mod_proxy_html 来更正 html 文件中的链接。
答案1
我怎样才能从反向代理框而不是实际主机加载一些文件(比如 robots.txt)?
ProxyPass /robots.txt http://someotherserver.com/robots.txt
或者
RewriteEngine On
RewriteCond %{REQUEST_URI} .*robots\.txt$ [NC]
RewriteRule (.*) http://otherhost.com/$1 [P]
允许在代理框中加载 .htaccess 是否明智?代理框的重写规则又如何呢?
这其实没什么关系;.htaccess 只是一个“扩展的” apache 配置,因此每个服务器将单独处理自己的重写规则。如果您的配置允许在代理之前读取 .htaccess 文件,则两者都将执行。
我应该把重写规则放在哪里?在虚拟主机中还是在 .htaccess 中?如果我允许从代理框加载 .htaccess,那么拥有 2 个 .htaccess 会不会有问题?我认为只会加载其中一个。
与上面的非常相似,如果您编写的 .htaccess 页面实际上将在两个服务器上加载,那么它们将独立工作。
那么 http 和 https 上的反向代理站点怎么样?我需要一些特殊设置吗?
这里没有真正的问题。这都是服务器端的,所以它不会改变与客户端的交互。
创建反向代理时有什么需要注意的问题吗?我已经知道如何使用 mod_proxy_html 来更正 html 文件中的链接。
我暂时还想不出什么。