microproxy logo

microproxy

  •  0 ratings
In category: Proxy

About microproxy

Lightweight non-caching HTTP/HTTPS proxy server.

  •   438  
  •   0  
  •   0  
  •   0  
Github stats:
  •  Commits: N/A  
  •   N/A  
  •   N/A  
  •  Latest commit: N/A  

Deploy this app to Linode with a free $100 credit!

Languages/Platforms/Technologies:
Lincenses:

More about microproxy

About

microproxy is a lightweight non-caching HTTP/HTTPS proxy server.

Main features

  • Single executable with no external dependencies.
  • Single simple configuration file in TOML format.
  • Basic and Digest access authentication methods.
  • IP-based black and white access lists.
  • Ability to log all requests.
  • Ability to tweak X-Forwarded-For header.
  • Ability to specify IP address for outgoing connections.
  • Ability to forward requests to upstream proxy.
  • Reasonable memory usage.

Installing

This project is written in the Go programming language and to build it you need to install Go compiler and set some enviroment variables. Here is instructions on how to do it. After you've done it, run the following command in your shell:

$ go get github.com/thekvs/microproxy
and this will build the binary in $GOPATH/bin.

Run go build -mod=vendor for local build.

Configuration file options

microproxy uses TOML format for configuration file. Below is a list of supported configuration options.

  • listen="ip:port" -- ip address and port where to listen for incoming proxy request. Default: 127.0.0.1:3128
  • access_log="path" -- path to a file where to write requested through proxy urls.
  • activity_log="path" -- path to a file where to write debug and auxiliary information.
  • allowed_connect_ports=[port1, port2, ...] -- list of allowed port to CONNECT to. Default: [443]
  • auth_file="path" -- path to a file with users' passwords. If you use digest auth. scheme this file has to be in the format used by Apache's htdigest utility, for basic scheme it has to be in the format used by Apache's htpasswd utility with -p option, i.e. created as $ htpasswd -c -p auth.txt username.
  • auth_type="type" -- authentication scheme type. Available options are:
  • "basic" -- use Basic authentication scheme.
  • "digest" -- use Digest authentication scheme.
  • auth_realm="realmstring" -- realm name which is to be reported to the client for the proxy authentication scheme.
  • forwarded_for_header="action" -- specifies how to handle X-Forwarded-For HTTP protocol header. Available options are:
  • "on" -- set X-Forwarded-For header with client's IP address, this is a default choice.
  • "off" -- do nothing, i.e. leave headear as is.
  • "delete" -- delete X-Forwarded-For header, this turns on stealth mode.
  • "truncate" -- delete all old X-Forwarded-For headers and insert a new one with client's IP address.
  • via_header="action" -- specifies how to handle Via HTTP protocol header. Available options are:
  • "on" -- set Via header, this is a default choice.
  • "off" -- do nothing with Via header.
  • "delete" -- delete Via header.
  • via_proxy_name="name" -- this value will be used as the host name in the Via header, by default the server's host name will be used.
  • allowed_networks=["net1", ...] -- list of whitelisted networks in CIDR format.
  • disallowed_networks=["net1", ...] -- list of blacklisted networks in CIDR format.
  • bind_ip="ip" -- specify which IP will be used for outgoing connections.
  • add_headers=[["header1", value1"], ["header2", "value2"]...] -- adds specified headers to outgoing HTTP requests, this option will not work for HTTPS connections.
  • forward_proxy_url="http://user:password@host:port" -- specify proxy to forward requests to. Uses basic auth type for the forward proxy.

Usage

$ ./microproxy --config microproxy.toml

To enable debug mode, add -v switch. To only test configuration file correctness add -t switch, i.e. $ ./microproxy --config microproxy.toml -t

Signal handling

On USR1 signal microproxy reopens access and activity log files.

Licensing

All source code included in this distribution is covered by the MIT License found in the LICENSE file.

Comments (0)

Please login to join the discussion on this project.

microproxy Reviews (0)

Overall Rating

None

based on 0 ratings

Please login to review this project.

No reviews for this project yet.

↑ back to top

pCloud Lifetime

Popular Projects

FluxBB

in Social Networks and Forums
 33k    0    0    0  

Nextcloud

in File Transfer & Synchronization
 20k    1    1    0  

Libreddit

in Social Networks and Forums
 7k    0    1    0  

Dashboard

in Personal Dashboards
 5k    0    0    0  

Audiobookshelf

in Audio Streaming
 5k    0    1    0  

CasaOS

in Self-hosting Solutions
 5k    0    0    0  

Mediagoblin

in Photo and Video Galleries
 4k    0    0    0  

Most Discussed

Nextcloud

in File Transfer & Synchronization
 20k    1    1    0  

Tube Archivist

in Automation
 3k    0    1    0  

OneDev

in Project Management
 2k    0    0    0  

iodine

in Proxy
 2k    0    0    0  

Alf.io

in Booking and Scheduling
 2k    0    0    0  

sysPass

in Password Managers
 1k    0    0    0  

Misskey

in Social Networks and Forums
 2k    0    0    0  
Linux VPS from $11/yr.
RackNerd VPS for $11.38/mo

Top Rated Projects

Gitea

 1 rating
in Project Management

Bagisto

 1 rating
in E-commerce

LinkAce

 1 rating
in Bookmarks and Link Sharing

Pydio

 1 rating
in File Transfer & Synchronization

Audiobookshelf

 1 rating
in Audio Streaming

Nextcloud

 1 rating
in File Transfer & Synchronization

Seafile

 1 rating
in File Transfer & Synchronization

Categories

You May Also Be Interested In

imgproxy logo
imgproxy cover

imgproxy

Fast and secure standalone server for resizing and converti…

Outline Server logo
Outline Server cover

Outline Server

A proxy server that runs a Shadowsocks instance for each ac…

SWAG (Secure Web Application Gateway) logo
SWAG (Secure Web Application Gateway) cover

SWAG (Secure Web Application Gateway)

Nginx webserver and reverse proxy with PHP support, built-i…