我知道这在理论上应该非常基础和简单,但我需要完成这项任务,我对此很陌生,而且由于某种原因,我找不到适合我的例子。
我在 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
...
就我而言,它起作用了。