An open API service indexing awesome lists of open source software.

https://github.com/xzeldon/http-proxy-server

Simple http proxy server implemented in Go
https://github.com/xzeldon/http-proxy-server

http http-proxy proxy

Last synced: 2 months ago
JSON representation

Simple http proxy server implemented in Go

Awesome Lists containing this project

README

        

# HTTP Proxy Server

This is a lightweight proxy server written in Go that supports HTTP requests and HTTPS tunneling.

Mirror on my [ Git](https://git.zeldon.ru/zeldon/http-proxy-server)

## Features

- Proxying HTTP requests
- Tunneling HTTPS requests
- Optional Basic Proxy Authentication
- Customizable port, username, and password using command-line arguments
- Logging

## Prerequisites

- Golang (if building from source)

## Usage

### Running the Proxy

#### For Darwin/Linux:

1. Download the latest release for your platform from GitHub releases
2. Extract the downloaded archive:

```bash
tar -xvzf http-proxy-server-v{version}-{platform}-{arch}.tar.gz
```

3. Navigate to the extracted folder:

```bash
cd http-proxy-server-v{version}-{platform}-{arch}
```

4. Run the proxy:

```bash
./http-proxy-server --port [--username --password ]
```

#### For Windows:

1. Download the latest release for Windows from GitHub releases
2. Extract the downloaded ZIP archive
3. Navigate to the extracted folder.
4. Open a command prompt in this directory.
5. Run the proxy:

```bash
proxy_name.exe --port [--username --password ]
```

#### From Source

1. Clone the repository:
```bash
git clone https://github.com/xzeldon/http-proxy-server.git
cd http-proxy-server
```

2. Run the proxy:
```bash
go run main.go --port [--username --password ]
```

By default, the proxy will run on port `3000`. If both `--username` and `--password` are omitted, authentication will be bypassed.

For example:

- To run the proxy on port `1489` without authentication:
```bash
go run main.go --port 1489
```

- To run the proxy on port `1489` with authentication:
```bash
go run main.go --port 1489 --username admin --password admin123
```

### Authentication

If you specify both `--username` and `--password` when starting the proxy, it will enforce Basic Proxy Authentication with the given credentials. If these parameters are omitted, the proxy will not require authentication.

### License

This project is licensed under the MIT License.