GithubHelp home page GithubHelp logo

schwartx / octoproxy Goto Github PK

View Code? Open in Web Editor NEW
15.0 15.0 0.0 5.28 MB

A load balancing proxy with mTLS encryption via QUIC or HTTP/2[WIP]

License: MIT License

Rust 96.62% Shell 1.23% Python 1.91% Lua 0.25%
http2 mtls proxy quic tunnel

octoproxy's People

Contributors

schwartx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

octoproxy's Issues

New Feature: Host Modify

Description

The Host Modify feature would merge the functionality of both host_rewrite and host_route. Users will no longer need to configure these options separately, as they can now be set together within the host_modify configuration option.

The Host Modify feature would allow users to add a client configuration option named host_modify. This would be followed by a toml file path that contains a list of host modify rules.

The File Format Example:

The host_modify file is a toml file with the following format:

["example.com"]
rewrite = "127.0.0.1"
backend = "local1"

["google.com"]
rewrite = "127.0.0.1"
backend = "local1"
  • Each section represents a host entry, such as example.com, google.com. Each domain entry can have 2 configuration options: rewrite and backend. The rewrite option specifies the IP address or hostname to which the host would be rewritten, and the backend option specifies the backend to which the request would be forwarded.

  • For each section, if either the rewrite or backend option is not set, the corresponding functionality would be ignored. If all options are not set, the entire section would be ignored.

["example.com"]
rewrite = "127.0.0.1"
backend = "local1"

# this section would be ignored.
["google.com"]

In the future, there might be additional functionality options added.

Proposal to Enhance EasyCert Command Line Tool Functionality

The current functionality of the EasyCert command line tool is limited, with unclear and cryptic command line output and a lack of testing code. Therefore, it is neccessary to strengthen EasyCert by incorporating the following improvements:

  1. Improved and Clear Command Line Output
  2. Comprehensive Unit Testing
  3. Addition of Certificate Expiry Validation Feature
  4. Addition of Certificate Information Display Feature
  5. Optional Key Length and Encryption Type(Note: Feasibility to be determined)

New Feature: Host Rewrite

Description

The Host Rewrite feature would allow users to rewrite the host of incoming requests, enabling them to modify the target host to which the request is routed.

The Host Rewrite feature would allow users to add a client configuration option named host_rewrite. This would be followed by a file path that contains a list of host rewrite rules.

The File Format Example:

The host_rewrite file should adhere to a specific format, where each line represents a rewrite rule. Each line should consist of the original host and the rewritten host, separated by a space. It is important to ensure that the original host in each line is unique to avoid conflicts during the rewrite process. Here is an example of the host_rewrite file format:

example.com hello.com
11.11.11.1 127.0.0.1
google.com 22.22.1.2

New Feature: Host Route

Description

The Host Route feature would allow users to specify the backend destination for incoming requests based on the host.

The Host Route feature would allow users to add a client configuration option named host_route. This would be followed by a file path that contains a list of host route rules.

The File Format Example:

The host_route file should adhere to a specific format, where each line represent a route rule. Each line should consist of the specified host and the corresponding backend, separated by a space. It is important to ensure that each line specifies a unique host to avoid conflicts in the routing process. Here is an example of the host_route file format:

example1.com backend1
example2.com backend1

Note that the request should fail when the corrsesponding backend becomes unavailable.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.