Home

Awesome

Easegress <!-- omit from toc -->

Go Report Card GitHub Workflow Status (branch) codecov Docker pulls License GitHub go.mod Go version Join Easegress Slack OpenSSF Best Practices FOSSA Status

<a href="https://megaease.com/easegress"> <img src="./docs/imgs/easegress.svg" alt="Easegress logo" title="Easegress" height="175" width="175" align="right"/> </a>

What is Easegress

Easegress is a Cloud Native traffic orchestration system designed for:

The architecture of Easegress:

architecture

Features

Getting Started

The basic usage of Easegress is to quickly set up a proxy for the backend servers.

Launch Easegress

Easegress can be installed from pre-built binaries or from source. For details, see Install.

Then we can execute the server:

$ easegress-server
2023-09-06T15:12:49.256+08:00   INFO    cluster/config.go:110   config: advertise-client-urls: ...
...

By default, Easegress opens ports 2379, 2380, and 2381; however, you can modify these settings along with other arguments either in the configuration file or via command-line arguments. For a complete list of arguments, please refer to the easegress-server --help command.

After launching successfully, we could check the status of the one-node cluster.

$ egctl get member
...

$ egctl describe member
...

Reverse Proxy

Assuming you have two backend HTTP services running at 127.0.0.1:9095 and 127.0.0.1:9096, you can initiate an HTTP proxy from port 10080 to these backends using the following command:

$ egctl create httpproxy demo --port 10080 \
  --rule="/pipeline=http://127.0.0.1:9095,http://127.0.0.1:9096"

Then try it:

$ curl -v 127.0.0.1:10080/pipeline

The request will be forwarded to either 127.0.0.1:9095/pipeline or 127.0.0.1:9096/pipeline, utilizing a round-robin load-balancing policy.

More about getting started with Easegress:

Use Cases

The following examples show how to use Easegress for different scenarios.

For full list, see Tutorials and Cookbook.

Documentation

Easegress Portal

Easegress Portal is an intuitive, open-source user interface for the Easegress traffic orchestration system. Developed with React.js, this portal provides config management, metrics, and visualizations, enhancing the overall Easegress experience.

Screenshots

1. Cluster Management

cluster

2. Traffic Management

traffic http server

3. Pipeline Management

pipeline detail

Community

Contributing

See Contributing guide. The project welcomes contributions and suggestions that abide by the CNCF Code of Conduct.

License

Easegress is under the Apache 2.0 license. See the LICENSE file for details.

FOSSA Status