网站首页 > 技术教程 正文
网络代理类型:
正向代理
是一种客户端的代理技术, 帮助客户端访问无法访问的服务资源, 可以隐藏用户真实IP。比如: 浏览器web代理、VPN等
反向代理
是─种服务端的代理技术, 帮助服务器做负载均衡、缓存、提供安全校验等, 可以隐藏服务器真实IP。比如:LVS技术、nginx proxy_pass等
代理流程:
1 代理接收客户端请求, 复制原请求对象, 并根据数据配置新请求各种参数
2 把新请求发送到真实服务端, 并接收到服务器端返回
3 代理服务器对相应做一些处理, 然后返回给客户端
package main
import (
"fmt"
"io"
"net"
"net/http"
"strings"
)
type Pxy struct{}
func (p *Pxy) ServeHTTP(rw http.ResponseWriter, req *http.Request) {
fmt.Printf("Received request %s %s %s\n", req.Method, req.Host, req.RemoteAddr)
transport := http.DefaultTransport
// step 1,浅拷贝对象,然后就再新增属性数据
outReq := new(http.Request)
*outReq = *req
if clientIP, _, err := net.SplitHostPort(req.RemoteAddr); err == nil {
if prior, ok := outReq.Header["X-Forwarded-For"]; ok {
clientIP = strings.Join(prior, ", ") + ", " + clientIP
}
outReq.Header.Set("X-Forwarded-For", clientIP)
}
// step 2, 请求下游
res, err := transport.RoundTrip(outReq)
if err != nil {
rw.WriteHeader(http.StatusBadGateway)
return
}
// step 3, 把下游请求内容返回给上游
for key, value := range res.Header {
for _, v := range value {
rw.Header().Add(key, v)
}
}
rw.WriteHeader(res.StatusCode)
io.Copy(rw, res.Body)
res.Body.Close()
}
func main() {
fmt.Println("Serve on :8080")
http.Handle("/", &Pxy{})
http.ListenAndServe("0.0.0.0:8080", nil)
}
Window平台
1、打开IE(或360)浏览器->"工具", 点击"Internet选项";
2、在"Internet选项"对话框下, 点击"连接"选项卡, 然后点击"局域网设置"按钮;
3、在回弹出的"局域网(LAN)设置"对话框下, 选中"为LAN使用代理服务器"的复选框。然后点击"高级"按钮;
4、在弹出的"代理服务器设置"对话框下, 设置不同类型的代理服务器(如HTTP、HTTPS或FTP)。然后输入"要使用的代理服务器地址", 点击"确定"按钮即答可。
如: 127.0.0.1 8080
windows设置全局代理可以通过以下4个步骤操作来实现:
1、点击开始菜单, 然后点击setting(设置);
2、接着, 点击"网络和internet";
3、在网络和internet中选择"代理"选项;
4、先关闭"自动检测"开关, 然后打开手动设置代理的开关, 并在 地址中输入代理 IP地址 在端口中填入 代理服务器端口号。
当然你也可以排除本地地址不使用代理, 然手动输入一些不需要使用代理的地址, 设置完成后点击保存按钮。
使用HTTP代理(命令行):
Linux/Unix和macOS:
export http_proxy=http://192.168.1.2:1234
export http_proxy=http://proxy.example.com:1234
Windows:
setx http_proxy=http://192.168.1.2:1234
set http_proxy=http://proxy.example.com:1234
说明 setx命令表示设置永久环境变量。设置完成后, 需要重启终端。
配置https_proxy环境变量
Linux、macOS和Unix:
export https_proxy=http://192.168.1.2:5678
export https_proxy=http://proxy.example.com:5678
Windows:
setx https_proxy=http://192.168.1.2:5678
set https_proxy=http://proxy.example.com:5678
猜你喜欢
- 2024-10-14 Ingress的proxy_pass实践(ingress配置https)
- 2024-10-03 一张简图、一个故事认识Nginx正向代理、反向代理,终生难忘
- 2024-10-03 Nginx反向代理(nginx反向代理出现502)
- 2024-10-03 使用nginx的proxy_pass进行代理转发问题
- 2024-10-03 Nginx反向代理proxy_pass指令(nginx反向代理http)
你 发表评论:
欢迎- 08-06linux 和 windows文件格式互相转换
- 08-06谷歌 ChromeOS 已支持 7z、iso、tar 文件格式
- 08-06Linux下比较文件内容的6种方法
- 08-06文件格式及功能汇总
- 08-0610个Linux文件内容查看命令的实用示例
- 08-06Linux-如何区分不同文件类型
- 08-06Zabbix技术分享——监控windows进程资源使用情况
- 08-06Linux系统卡顿?学会ps命令这三招,轻松定位问题进程
- 最近发表
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)