All Projects → cssivision → Reverseproxy

cssivision / Reverseproxy

Licence: mit
a minimalist http/https proxy library for golang

Programming Languages

go
31211 projects - #10 most used programming language

Labels

Projects that are alternatives of or similar to Reverseproxy

Node.pas
Asynchronous Event-driven server programming for EMB Delphi, powered by libuv.
Stars: ✭ 45 (-32.84%)
Mutual labels:  https
Netcore Postgres Oauth Boiler
A basic .NET Core website boilerplate using PostgreSQL for storage, Adminer for db management, Let's Encrypt for SSL certificates and NGINX for routing.
Stars: ✭ 57 (-14.93%)
Mutual labels:  https
Low Latency Android Ios Linux Windows Tvos Macos Interactive Audio Platform
🇸Superpowered Audio, Networking and Cryptographics SDKs. High performance and cross platform on Android, iOS, macOS, tvOS, Linux, Windows and modern web browsers.
Stars: ✭ 1,121 (+1573.13%)
Mutual labels:  https
Hqmnetworking
基于AFN3.x核心类AFURLSessionManager封装的网络请求,支持 HTTPS 请求验证,可以配置请求头,支持多图上传并可选带进度回调,支持 block、delegate(代理) 请求回调,详见
Stars: ✭ 49 (-26.87%)
Mutual labels:  https
Certify
SSL Certificate Manager UI for Windows, powered by Let's Encrypt. Download from certifytheweb.com
Stars: ✭ 1,075 (+1504.48%)
Mutual labels:  https
Wolfssl
wolfSSL (formerly CyaSSL) is a small, fast, portable implementation of TLS/SSL for embedded devices to the cloud. wolfSSL supports up to TLS 1.3!
Stars: ✭ 1,098 (+1538.81%)
Mutual labels:  https
Katwebx
An extremely fast static web server and reverse proxy for the modern web.
Stars: ✭ 39 (-41.79%)
Mutual labels:  https
Esp Request
This project is no longer supported, please use
Stars: ✭ 65 (-2.99%)
Mutual labels:  https
Internet.nl
Internet standards compliance test suite
Stars: ✭ 56 (-16.42%)
Mutual labels:  https
Go Mitmproxy
mitmproxy implemented with golang. 用 Golang 实现的中间人攻击(Man-in-the-middle),解析、监测、篡改 HTTP/HTTPS 流量。
Stars: ✭ 61 (-8.96%)
Mutual labels:  https
Qtwebapp
QtWebApp is a HTTP server like Java servlets, written in C++ with the Qt framework.
Stars: ✭ 50 (-25.37%)
Mutual labels:  https
Terraform Aws Alb
Terraform module to provision a standard ALB for HTTP/HTTP traffic
Stars: ✭ 53 (-20.9%)
Mutual labels:  https
Clojurl
An example Clojure CLI HTTP/S client using GraalVM native image
Stars: ✭ 59 (-11.94%)
Mutual labels:  https
Halive
A fast http and https prober, to check which URLs are alive
Stars: ✭ 47 (-29.85%)
Mutual labels:  https
Titanium Web Proxy
A cross-platform asynchronous HTTP(S) proxy server in C#.
Stars: ✭ 1,122 (+1574.63%)
Mutual labels:  https
Https
Secure HTTP client with SSL pinning for Nativescript - iOS/Android
Stars: ✭ 45 (-32.84%)
Mutual labels:  https
Devserver
A simple HTTPS server for local development. Implemented in Rust.
Stars: ✭ 57 (-14.93%)
Mutual labels:  https
Esa Restlight
ESA Restlight is a lightweight and rest-oriented web framework.
Stars: ✭ 67 (+0%)
Mutual labels:  https
Docker Letsencrypt Certgen
Docker image to generate, renew, revoke RSA and/or ECDSA SSL certificates from LetsEncrypt CA using certbot and acme.sh clients in automated fashion
Stars: ✭ 64 (-4.48%)
Mutual labels:  https
Zinc
Zinc HTTP Components is an open-source Smalltalk framework to deal with the HTTP networking protocol.
Stars: ✭ 60 (-10.45%)
Mutual labels:  https

Introduction

A minimalist proxy library for go, inspired by net/http/httputil and add support for HTTPS using HTTP Tunnel

Support cancels an in-flight request by closing it's connection

Installation

go get github.com/cssivision/reverseproxy

Usage

A simple proxy

package main

import (
    "net/http"
    "net/url"
    "github.com/cssivision/reverseproxy"
)

func main() {
    http.ListenAndServe(":8080", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
        path, err := url.Parse("https://github.com")
        if err != nil {
            panic(err)
            return
        }
        proxy := reverseproxy.NewReverseProxy(path)
        proxy.ServeHTTP(w, r)
    }))
}

Use as a proxy server

To use proxy server, you should set browser to use the proxy server as an HTTP proxy.

package main

import (
    "net/http"
    "net/url"
    "github.com/cssivision/reverseproxy"
)

func main() {
    http.ListenAndServe(":8080", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
        path, err := url.Parse("http://" + r.Host)
        if err != nil {
            panic(err)
            return
        }

        proxy := reverseproxy.NewReverseProxy(path)
        proxy.ServeHTTP(w, r)

        // Specific for HTTP and HTTPS
        // if r.Method == "CONNECT" {
        //     proxy.ProxyHTTPS(w, r)
        // } else {
        //     proxy.ProxyHTTP(w, r)
        // }
    }))
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].