#proxy

reactjs 在本地开发使用 proxy 遇到的问题

Published at September 25, 2019 ·  1 min read

在 Reactjs 写前端时遇到的奇葩问题,在 react-scripts start 在 docker 容器中启动,需要在 package.json 中指定 proxy 地址。地址需要保证在reactjs 的容器中能够访问,而非 127.0.0.1:8000 或 localhost:8000 等本地地址。 然而,前后端分离中,后端 API 则在另外一个容器中,所以这里的地址就需要填写对应的地址就需要访问到相应的后端 API。 两种解决方案:1. 在 macOS 的开发环境中可以通过 host.docker.internal 外加端口即可访问宿主机相应的端口服务,2. 通过在 docker-compose 中配置的容器名,即 container_name:port 访问对应的容器资源。...


通过 Golang 学习 http 协议,如何用 Golang 实现 https 代理

Published at August 31, 2019 ·  1 min read

在 http.HandlerFunc 中检查 r.Method 为 Connect 后及将请求交给 handleTunneling,其中关键的是将 http.ResponseWriter 转换为 http.Hijacker 接管连接,并通过两个 goroutine transfer 复制请求。 func handleTunneling(w http.ResponseWriter, r *http.Request) { dst, err := net.DialTimeout("tcp", r.Host, 10*time.Second) if err != nil { http.Error(w, err.Error(), http.StatusServiceUnavailable) return } w.WriteHeader(http.StatusOK) hijacker, ok := w.(http.Hijacker) if !ok { http.Error(w, "Hijacking not supported", http.StatusInternalServerError) return } conn, _, err := hijacker.Hijack() if err != nil { http.Error(w, err.Error(), http.StatusServiceUnavailable) } go transfer(dst, conn) go transfer(conn, dst) } func transfer(dst io....


通过 Golang 学习 http,几行代码实现 http proxy

Published at August 30, 2019 ·  1 min read

这个 Github 作为通过 Golang 学习 http 中的其中一篇教程,非常简单明了。 其中关于 http proxy 代理用户校验部分代码如下,r.Header.Get("Proxy-Authorization") 从 request 的 header 中获取 ‘Proxy-Authorization’ 并将其通过 base64 解码获取用户名和密码进行校验。 若失败则直接将 http status code 通过 w.WriteHeader 返回给用户端。 func basicAuth(w http.ResponseWriter, r *http.Request, users []User) bool { var auth = r.Header.Get("Proxy-Authorization") if ms := strings.Split(auth, " "); len(ms) == 2 && ms[0] == "Basic" { // check user:password up, err := base64.StdEncoding.DecodeString(ms[1]) if err == nil { if ms := strings....


在长城宽带等某些垃圾宽带的网络环境下,通过 ssh 连接某些服务器经常会出现 timeout 的解决方法

Published at August 30, 2019 ·  1 min read

可在 .ssh/config 中配置以下命令,通过 ssh q 连接服务器。 HostName 为目标服务器 ip, -X 5 为 socks5 代理, localhost:6153 为 socks5 代理地址。 Host q HostName 47.240.33.24 User root ProxyCommand nc -X 5 -x localhost:6153 %h %p 与此方法类似的是,可以配置通过跳板机,在客户端直接访问内网服务器。jumper server 为跳板机,在正常情况下,处于内网环境的 target 服务器无法直接从客户端访问,需经过跳板机访问,此时,则可通过如下配置,在 Terminal 中运行 ssh target 访问跳板机后面的目标服务器。 Host target HostName 172.16.6.2 Port 35000 User root IdentityFile /Users/tonywang/target.key ProxyCommand ssh -q -W %h:%p jumperserver Host jumperserver HostName 192.168.1.2 Port 35000 IdentityFile /Users/tonywang/js.key User root ...


How to configure docker to use proxy

Published at May 30, 2019 ·  1 min read

如何为 docker 设置使用 proxy,除了设置环境变量外,还需要在 /etc/systemd/system/docker.service.d 中创建 http-proxy.conf 的文件,并在其中添加代理,完成后需要通过 systemctl 重启 docker 服务。 How to configure docker to use proxy...


What Is Layer 4 Load Balancing? | NGINX Load Balancer

Published at April 26, 2019 ·  1 min read

layer 4 和 layer 7 负载均衡的比较。 layer 4 主要是在 tcp/ip 层根据请求 ip 等进行请求的负载均衡, 而 layer 7 则是在 http 层,偏向应用层,可以通过 http header 等信息进行负载均衡,当然性能相比于 layer 4 会低些,资源消耗也会更多。其中 nginx 和 haproxy 两种模式均有,traefik 则只有 layer 7 一种模式 What Is Layer 4 Load Balancing? | NGINX Load Balancer...



关于内网穿透frp程序的分析

Published at February 28, 2019 ·  1 min read

frp 原理的大致讲解,和花生壳之类的常见ddns 不同,这种方式是需要有一个中继服务器将对用户和本地的流量进行双向转发以实现内网穿透,与常见的 ddns 的优势也是非常明显,在复杂的网络环境中,比如多层 nat 中同样也可以使用。 关于内网穿透frp程序的分析...


shadowsocks-go源码阅读

Published at February 27, 2019 ·  1 min read

shadowsocks 源码分析,其中关键的部分 handleconnection 函数中通过 go ss.PipeThenClose(conn, remote) 和 ss.PipeThenClose(remote, conn) 进行 client 和 server 之间的数据交换,在之前的阅读源码中,并没有很好的理解其作用。 shadowsocks-go源码阅读...


Cannot download Docker images behind a proxy

Published at February 26, 2019 ·  1 min read

如何为 docker 配置 proxy,最初以为在 env 中配置即可,结果测试后不知为何不行,按照此方法确实可用。 Cannot download Docker images behind a proxy...



Tags

abcs accept acid activemq affinity algorithm allocation android array async aws b+tree b-tree backoff benchmark best-practices bfs big-o bigquery bind bitcount blog break broker bubble buffer cache cap cert cgroups channel citus class classmethod closure closures cluster concurrency config consistency consumer container context cookie cors crawler cronjob csrf ctr data-science data-structure database datadog dataflow datascience decorator deepcopy defer dfs distributed django dns docker double-shipping drf ecosia elastic-search enumerate epoll equal errgroup escaping event extra fabric2 facebook-pixel financial-report flask flutter forward-proxy freelance frontend frp garbage-collector gc gcp generator gesture get gil git golang goroutine graphql ha handbook haproxy hash hash-slot hashring hashtable hpa http http-auth http-proxy http_proxy https index init innodb instagram intention-lock intergration interview ios is javascript jinja2 jobboard json jwt k8s kafka kibana kqueue label lambda layer4 layer7 lean levels.io linked-list linux list listen loadbalancer lock logs long-tail lru marketing master matplotlib memory merge metaclass metaprogramming metrics metrics-server microservices mitm mobile model mongo mongoose mq myisam mysql namespace nat netflix network network-extension nginx nodejs nomad nosql notification npm oodesign openssl optimization orm osi pandas parallelism paramiko parkinglot patroni permission pg pipeline pixelme post postgresql postresql prefetch_related prerender private-key process proxy proxycommand put pvm python queue rabbitmq rbac react-native reactive reactjs rebase redis redis-cluster replication resource rest restfulapi retargeting retry revenue reverse-proxy rocketmq rsa rxswift saas scaffold scaleable search-engine security select seo serverless service session set shadosocks shadowsocks shard sharding shell shopify sigint signal sigterm singleton slack slave slow-query sniper sns socket socks5 source-code spa sql sqlalchemy sqs ssh ssl ssl-pinning stack startup state stateful stateless staticmethod string struct swift swiftui switch syscall system-design systemctl tcp tcp-proxy thread tmpreaper token traefik trustkit tunning type typeform udp userdefaults variable vc voidcallback vpn vuejs weak web web-development where widget with yarn zset 削峰 单例模式 宽索引 异步 看源码学-golang 窄索引 解耦 跨域 跳板机


Archives

2020 (6)
2019 (157)
0001 (5)