Skip to content

alexrsagen/alexproxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

alexproxy

Aptly named alexproxy, this is my asynchronous HTTP(s) proxy written in Golang.

Most of the server part is copied and modified from the Golang httputil package.

Introduction

In need of a fast and simple HTTP(s) proxy?
Look no further, alexproxy is the solution for you!

Features

  • CIDR-based IP access control
  • Monitoring via netdata module go_expvar
  • Tight systemd integration by implementing sd_notify(3)
  • Supports both regular HTTP proxying and HTTPS proxying by implementing the HTTP CONNECT method
  • Supports HTTP_PROXY / HTTPS_PROXY environment variables so you can proxy while you proxy
  • Easy to use: just run alexproxy -listen :8080 and you're up and running!
  • Runs on Windows, Linux, macOS and more!

Usage

Usage of alexproxy:
  -cidrfile string
        Path to file containing newline-separated CIDR prefixes that are allowed access, 0.0.0.0/0 / ::/0 is allowed if not specified
  -direct-cidrfile string
        Path to file containing newline-separated CIDR prefixes that are allowed access to direct endpoint, 127.0.0.0/8 / ::1/128 is allowed if not specified
  -debug
        Enable debug logging
  -h    Show this help menu
  -help
        Show this help menu
  -listen string
        Listen address in the format of <ip>:<port>
  -timeout string
        Request timeout (default "30s")
  -version
        Print version and exit

Direct endpoints

GET | HEAD /debug/status

Returns 200 OK.

GET /debug/vars

See golang.org/pkg/expvar. Additionally exports proxyRequests, which is a counter of requests currently being handled.

Building

Requires the Golang runtime (and GNU Make if you want to make your life easier).

Run make to build, or if you're not on Linux, have a look at the commands in the Makefile.

About

An asynchronous HTTP/HTTPS proxy written in Go

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published