我在 Google 上搜索过,没有找到任何关于为 proxypass 配置 apache 的指令。
我确实找到了无需等待 DNS 传播即可将域名转换到新的 Web 主机但我不明白他们在说什么,尤其是以下内容:
1)如何启用代理、proxy_http 和重写模块
2)在哪里可以找到 apache 配置文件和此行?
RewriteEngine on
ProxyPassReverse / http://<your-fqdn-here>/
ProxyPass / http://<your-fqdn-here>/
我的意思是您能指导我配置 ProxyPass 吗?
更新
我在 centOS Apache 版本上运行:
Server version: Apache/2.2.22 (Unix)
Server built: Feb 10 2012 16:45:29
Cpanel::Easy::Apache v3.9.1 rev9999
我尝试按照本教程安装代理模块http://www.hackersgarage.com/install-mod_proxy-apache-module-on-whmcpanel-ceentos-linux-server.html
但是我得到了这个错误:
./configure --enable-mods-shared="proxy proxy_http proxy_connect"
-bash: ./configure: /bin/sh: bad interpreter: Permission denied
所以我忽略了它并继续执行其余命令。当我尝试重新启动 Apache 时:
root@db [/tmp/httpd-2.2.22]# /etc/init.d/httpd restart
httpd: Syntax error on line 36 of /usr/local/apache/conf/httpd.conf: module proxy_module is built-in and can't be loaded
只需将其添加到 httpd.conf 即可生效
< VirtualHost *:80 > ServerName domain.com ServerAlias www.domain.com
< IfModule mod_proxy.c > ProxyPass / http://www.newdomain.com/ ProxyPassReverse / http://www.newdomain.com/ </IfModule><VirtualHost>
答案1
看看这个:
它适用于 CentOS5,但 CentOS6 将具有类似的配置,因为 Apache 没有发生重大变化。
基本上,您不应该尝试编译 mod_proxy。CentOS 的 httpd 服务器已经将其作为编译模块。您只需使用上述文档激活代理指令即可。因此,您应该撤消编译模块时所做的任何更改。
答案2
我将根据您提供的信息尽力解答您的问题。
首先,关于启用模块,这将因发行版而异。例如,在 RHEL/CentOS 上,重写和代理模块包含在基本 httpd 包中,您不需要做任何其他事情。
相比之下,在 Debian 上,您需要将配置文件从 mods-available 符号链接到 mods-enabled。有一个名为的工具a2enmod
可以帮助您完成此操作,例如:
a2enmod proxy
a2enmod rewrite
如果您使用的是 Debian,则应该通过查看配置文件来查看可以启用哪些模块/etc/apache2/mods-available/
。我相信 Ubuntu Server 完全一样。
至于第 2 点,您可以将代理配置放在<VirtualHost>
要代理的声明中。这同样会因发行版或偏好而异。大多数 RHEL/CentOS 系统都鼓励my-website.com.conf
在 中使用站点特定文件/etc/httpd/conf.d/
。Debian 用户应将文件放在 中/etc/apache2/sites-enabled/
(或 中sites-available
,并使用 创建符号链接a2ensite
)。有关这些辅助工具的完整指南可在此处找到这里。