在 Windows 中设置 apache http 服务器作为代理来访问另一个域

在 Windows 中设置 apache http 服务器作为代理来访问另一个域

我知道这在理论上应该非常基础和简单,但我需要完成这项任务,我对此很陌生,而且由于某种原因,我找不到适合我的例子。

我在 Windows 8 中运行 apache 2.2。我需要通过我的代理访问一个网站,我们称之为 x.com。原因是我需要在 iframe 中显示它并以编程方式登录它,为此我需要使用 javascript。跨域 ajax 安全约束阻止了这一点。通过代理网站我可以做到这一点。

我已经安装了 Apache http 服务器。取消注释以下行

LoadModule proxy_module modules/mod_proxy.so

在文件“httpd.conf”中并使用以下内容覆盖文件 conf\extra\httpd-vhosts.conf:

NameVirtualHost *:80

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/docs/dummy-host.localhost"
    ServerName 127.0.0.1:80
    ProxyRequests off
    ProxyPass /feature http://x.com/
    ProxyPassReverse /feature https://x.com/
    ProxyPassReverseCookieDomain x.com localhost
    ErrorLog "logs/dummy-host.localhost-error.log"
    CustomLog "logs/dummy-host.localhost-access.log" common
    <Directory "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/docs/dummy-host.localhost">
        AllowOverride all
        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1
    </Directory>
</VirtualHost>

我重新启动了 apache 服务,现在我转到:

http://localhost/feature

并得到

未找到

该服务器上未找到所请求的 URL/feature。

这个设置可能有什么问题?我还需要配置其他东西吗?

谢谢

答案1

浏览我遇到的相同问题后,我找到了解决方案。
很简单,你需要取消注释文件“httpd.conf”中的几行附加内容:

 ...  
 LoadModule proxy_http_module modules/mod_proxy_http.so  
 ...  
 LoadModule vhost_alias_module modules/mod_vhost_alias.so  
 ...  
 Include conf/extra/httpd-vhosts.conf  
 ... 

就我而言,它起作用了。

相关内容