PHP设置全局代理
发表于:2026-06-23 10:58:46浏览:13次
用途
- 网络代理一般就是用于数据抓取、网络访问时隐藏真实IP等,这里所说的就是如何最大限度隐藏服务器的真实IP的另外一个手法,使用网络代理
- 众所周知,用户在访问我们的网站时,服务器IP可以通过搭建CDN前置来实现将服务器IP和真实访问端口隐藏起来,用户通过
ping等方式获得的域名的IP只是CDN服务器的IP,不是我们真实的网站服务器IP。 - 但是CDN只做到了隐藏访问时的IP,我们的网站系统很多时候还会涉及需要调用外部的接口或者访问别人的网站获取数据,此时,我们的IP就很容易因为这个操作被别人的服务器捕获到真实IP,那么怎么隐藏这种情况下我们的服务器IP呢,那就可以使用代理了。
- 当然,也有很多成熟产品,例如NAT网关,但是价格也很美丽,对于我们这些小平台、小站长来说,实在承担不起。
搭建代理服务器
- 我们需要一台服务器或者家庭内网的电脑,搭建一个代理服务器(可使用最便宜的轻量云服务器即可,把所有端口全部关掉(SSH端口改掉,仅保留这一个即可)),然后安装我们这里的代理服务器软件,我们选用的是gost
- gost下载地址
https://github.com/ginuerzh/gost - 可以直接启动,或者放入service中使用即可,启动命令
gost -L admin:123456@:1080 - 这里记得开启代理端口
PHP全局生效
使用FPM时
- 配置文件:
etc/php/{版本号}/fpm/pool.d/www.conf - 新增内容:
env[http_proxy] = http://user:password@1.2.3.4:1080 env[https_proxy] = http://user:password@1.2.3.4:1080 env[HTTP_PROXY] = http://user:password@1.2.3.4:1080 env[HTTPS_PROXY] = http://user:password@1.2.3.4:1080 env[no_proxy] = localhost,127.0.0.1 php_value[auto_prepend_file] = /etc/php/proxy-default.php
使用Swoole等协程框架时
- 在 Swoole 启动脚本或 systemd service 中设置:
export http_proxy=http://your.proxy.host:8080 export https_proxy=http://your.proxy.host:8080 export ALL_PROXY=http://your.proxy.host:8080 export no_proxy=localhost,127.0.0.1
