Git 代理(Proxy) 配置

某些情况下,我们需要通过代理才能访问特定网络环境下的git资源,git支持代理配置, 支持 http(s), SOCKS4/SOCKS5.

HTTP(S)

HTTP 代理配置格式如下:

git config --global http.proxy http://[proxy]:[port]

实际环境下, 其实我们大多数情况下,并不需要全部git资源都需要通过代理访问, 仅仅某些特定的git库需要通过代理设置,针对特定域名的代理配置就更有实际意义.

git config --global http.[URL].proxy  http://[proxy]:[port]

这里的URL指向特定git资源的地址,可以是域名,可以是IP,例如:

git config --global http.https://github.com/.proxy http://sample.com:8080

上述配置意为通过 http://sample.com:8080 代理访问 github.com .

如果要针对https配置独立的代理, 可以将配置设置为:

git config --global https.https://github.com/.proxy http://sample.com:8080

SOCKS(4/5)

如果代理服务使用SOCKS4/SOCKS5协议,基于SOCKS的配置如下:

git config --global http.proxy socks5://[proxy]:[port]
git config --global https.proxy socks5://[proxy]:[port]

验证代理配置

代理配置操作完后, 可以通过 git config --global -l 来查看完整的全局配置

git config --global -l

也可以通过查看用户目录下的 .gitconfig 来查看全局配置.

# cat ~/.gitconfig
[http "https://github.com/"]
    proxy = http://sample.com:8080

关闭代理配置

要取消代理配置可以使用 --unset 选项.

git config --global --unset http.proxy
git config --global --unset https.proxy

查看代理配置

要查看任何 git config 配置,可以使用 --get 选项

git config --get http.proxy
git config --get https.proxy

代理配置切换

如果需要经常需要切换代理配置的话, 尽量还是构建一个简单易用的脚本,方便我们快速操作, 这里搜集整理了一个 Shell 脚本.

添加一个git_proxy.sh脚本

# vim git_proxy.sh

添加如下内容:

#!/bin/bash
case $1 in
 
on)
git config --global http.proxy 'http://sample.com:8080' 
git config --global https.proxy 'http://sample.com:8080'
;;
 
off)
git config --global --unset http.proxy
git config --global --unset https.proxy
;;
 
status)
git config --get http.proxy
git config --get https.proxy
;;
esac
exit 0

这样就可以使用 git_proxy.sh on 、git_proxy.sh off、 git_proxy.sh status 命令来快速的开启、关闭、查看代理。

在PHP中发送大附件邮件时,如果遇到请求超时或者内存不足的错误,通常是因为附件过大超过了服务器的限制或者是处理过程耗时过长。解决这个问题可以考虑以下几个步骤: 1. **分块发送**:如果你的文件非常大,可以将其分割成较小的部分,然后逐部分通过`mail()`函数发送,每部分单独处理。 ```php function sendFilePart($file_path, $email, $subject, $headers) { // 读取文件部分 $handle = fopen($file_path, 'r'); $part = fread($handle, 50000); // 每次读取50KB或自定大小 fclose($handle); // 添加边界行,并将部分添加到邮件体 $body = "--boundary\n"; $body .= "Content-Type: application/octet-stream; name=\"part.\n"; $body .= "Content-Disposition: attachment; filename=\"".basename($file_path)."\"\n"; $body .= "Content-Transfer-Encoding: base64\n\n"; $body .= chunk_split(base64_encode($part)); } // 使用循环和适当的时间间隔发送每个部分 foreach (range(0, filesize($file_path), 50000) as $offset) { $sendPart = sendFilePart("$file_path", $email, $subject, $headers); if (!$sendPart) { break; } } ``` 2. **设置PHP配置**:检查并调整PHP的`memory_limit`, `post_max_size`, 和 `upload_max_filesize` 设置,允许更大的上传和处理能力。可以在php.ini中修改,或者使用`ini_set()`函数临时调整。 3. **优化网络连接**:确保网络环境稳定,如果有必要,可以使用更快的网络连接或者CDN加速传输。 4. **使用第三方库**:如SwiftMailer或PHPMailer等库提供了更强大的功能,可以更好地控制发送流程,避免直接使用内置的`mail()`函数。 如果以上方法仍无法解决问题,建议检查目标邮箱服务器是否有特殊的要求,比如是否支持大附件的接收,以及对方的防火墙设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值