mod代理在apache上不起作用

Joh*_*ino 6 mod-proxy centos5 apache-2.2

我正在尝试在 WHM/CPanel CeEntOS Linux 服务器上安装 Mod_Proxy Apache 模块。这是系统信息:

CentOS release 5.6 (Final)
Server version: Apache/2.2.21 (Unix)
Cpanel::Easy::Apache v3.7.2 rev9999
Run Code Online (Sandbox Code Playgroud)

我安装的目的是,当我在 abc.com 站点上单击一个指向 auto.efg.com 站点的链接(假设它的 IP 地址是 192.168.0.101)时,浏览器将在 auto.efg 上加载应用程序。 com 同时在浏览器的地址栏上维护 abc.com。

所以我跟着这个教程:

http://www.hackersgarage.com/install-mod_proxy-apache-module-on-whmcpanel-ceentos-linux-server.html

所以当我完成它时,我能够做到这一点:

root@ip-xxx-xxx-xxx [/tmp/httpd-2.2.21/modules/proxy]# ls -l           
/usr/local/apache/modules/mod_proxy*

-rwxr-xr-x 1 root root 88708 Jan  5 08:22 /usr/local/apache/modules/mod_proxy.so*
-rwxr-xr-x 1 root root 49654 Jan  5 08:23 /usr/local/apache/modules/mod_proxy_connect.so*
-rwxr-xr-x 1 root root 73196 Jan  5 08:23 /usr/local/apache/modules/mod_proxy_http.so*
Run Code Online (Sandbox Code Playgroud)

现在,按照这些说明操作并尝试重新启动服务器后,出现以下错误:

/etc/init.d/httpd restart
httpd: Syntax error on line 35 of /usr/local/apache/conf/httpd.conf: module proxy_module is built-in and can't be loaded
Run Code Online (Sandbox Code Playgroud)

你看,这是因为我已经加载了 proxy_module 的模块。proxy_http_module 在 httpd.conf 中,所以我在 /usr/local/apache/conf/httpd.conf 中注释掉了它们:

# LoadModule proxy_module   modules/mod_proxy.so
# LoadModule proxy_http_module  modules/mod_proxy_http.so
# LoadModule proxy_connect_module modules/mod_proxy_connect.so
Run Code Online (Sandbox Code Playgroud)

现在那个错误消失了。

我的虚拟主机设置如下所示:

<VirtualHost 50.63.53.79:80>
    ServerName abc.com
    ServerAlias www.abc.com
    DocumentRoot /home/eagl0028/public_html
    ServerAdmin webmaster@abc.com
    ## User eagl0028 # Needed for Cpanel::ApacheConf
    <IfModule mod_suphp.c>
      suPHP_UserGroup eagl0028 eagl0028
    </IfModule>
    <IfModule !mod_disable_suexec.c>
      SuexecUserGroup eagl0028 eagl0028
    </IfModule>
    ProxyRequests Off
    <Proxy *>
      Order deny,allow
      Allow from all
    </Proxy>
    ProxyPreserveHost On
    ProxyPass / http://192.168.0.101/
    ProxyPassReverse / http://192.168.0.101/
    CustomLog /usr/local/apache/domlogs/abc.com-bytes_log "%{%s}t %I .\n%{%s}t %O ."
    CustomLog /usr/local/apache/domlogs/abc.com combined
    ScriptAlias /cgi-bin/ /home/eagl0028/public_html/cgi-bin/
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

但是,当我运行时:

 service httpd stop
 service httpd start
Run Code Online (Sandbox Code Playgroud)

然后发布到相对网址:

<form accept-charset="UTF-8" action="/users/sign_in" class="user_new" id="user_new" method="post">
Run Code Online (Sandbox Code Playgroud)

我期待它发布到 192.168.0.101 但它没有。我检查了 192.168.0.101 服务器日志并且没有请求进来的迹象。所有发生的都是 404 not found 错误,顶部的 url 是 abc.com/users/sign_in

Sha*_*den 0

href作用http://auto.efg.com/users/sign_in/是让你的浏览器远离代理——确保页面上的每个链接都让你的浏览器与代理对话不是 Apache 的工作。(有一些第三方模块会更改传输中页面上的 URL,但除了平面 HTML 中的链接外,它们不会对任何内容起作用)

您可以更改链接以保持方案和主机完好无损吗?

<a href="/users/sign_in/">clicky</a>
Run Code Online (Sandbox Code Playgroud)