buonzz / reverseproxy
执行反向代理功能的PHP脚本
1.0.0
2014-04-18 05:01 UTC
Requires
- php: >=5.2.0
- ext-curl: *
- lib-curl: *
This package is auto-updated.
Last update: 2024-09-06 08:58:05 UTC
README
##反向代理PHP脚本
一个简单的PHP脚本,可以用作反向代理。虽然你可以使用Nginx、mod_proxy或Squid等专用软件来实现这一功能,但在某些情况下,你可能更喜欢在单个文件夹中仅使用PHP脚本。可能有各种原因
- 你在一个共享主机上,无法修改服务器全局设置
- 由于某些原因,你必须将子域的内容作为另一个子文件夹提供。例如,你有site.yourdomain.com(服务器1)并希望它可以在另一台服务器上通过www.domain2.com/site访问
- 你想要缓存内容
- 公开无法访问Web服务器
- 你想要提供一个简单的代理服务器
- 访问者所在国家被限制访问实际网站
- 匿名化你的用户
要求
- PHP >= 5.2
- 启用Apache mod_rewrite
- 启用cURL扩展
安装
使用composer安装它
composer create-project buonzz/reverseproxy
编辑config.php
define('MASKED_DOMAIN', 'http://www.google.com');
define('PROXY_SUBFOLDER', 'reverseproxy');
define('FOLLOW_LOCATION', FALSE);
- MASKED_DOMAIN是这个脚本将从其获取内容的站点,不应有尾随斜杠。
- PROXY_SUBFOLDER如果你将脚本放置在子文件夹中,则使用此选项,例如 http://www.yourdomain.com/reverseproxy 如果你将其放置在域的根目录中,则将其留空
- FOLLOW_LOCATION - 表示脚本是否将跟随源站点的重定向
编辑 .htaccess
RewriteEngine on
RewriteCond $1 !^(index\.php)
RewriteRule ^(.*)$ /reverseproxy/index.php/$1 [L]
这个指令允许反向代理捕获针对原始域的URI,例如
http://www.originaldomain.com/blog/102014/hello-world
使用此设置,你可以使用
http://www.yourdomain.com/reverseproxy/blog/102014/hello-world
并且uri将被传递到index.php,然后可以将其传递到原始域以获取内容。请记住,如果你从根域提供内容,你只需要使用此
RewriteEngine on
RewriteCond $1 !^(index\.php)
RewriteRule ^(.*)$ /index.php/$1 [L]