Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/wgrape/ngxway

A high-performance and lightweight Nginx gateway service / 高性能轻量级的Nginx网关服务
https://github.com/wgrape/ngxway

api-gateway gateway lua nginx openresty

Last synced: 3 months ago
JSON representation

A high-performance and lightweight Nginx gateway service / 高性能轻量级的Nginx网关服务

Awesome Lists containing this project

README

        








GitHub release (latest by date)



A high-performance and lightweight Nginx gateway service.


Document :中文 / English   Wiki :English


## 1. Introduction
ngxway is a high-performance, containerized and lightweight nginx gateway.

## 2. Features

### (1) High-performance
This gateway service is mainly implemented in Lua and, with built-in Nginx configuration and Linux parameter optimizations, it can achieve an average QPS of ```50,000``` even without any tuning, on an ```8c16G``` machine.

For more information on performance, you can refer to the detailed [performance report](https://wgrape.github.io/ngxway/html/benchmark.html). How was it generated? Please refer to the [benchmark document](./doc/benchmark.md) if necessary.

image

### (2) Containerized

Built on Docker and decoupled from the underlying Nginx configuration, this gateway eliminates 90% of the setup process. With just one command, you can automatically set up your own Nginx gateway.

### (3) Lightweight

Compared to complex gateway implementations, this project is much lighter. You can freely modify various configurations of the project, as well as modify and add various Lua scripts to improve the overall performance of ngxway for your business.

## 3. Installation

To reduce installation costs and facilitate quick setup, simply execute the following command.

```bash
# install
git clone https://github.com/WGrape/ngxway.git && cd ngxway && bash install.sh

# uninstall
cd ngxway && bash uninstall.sh
```

## 4、Usage

### (1) Start the server
Execute the following command to start the ngxway server. If you can successfully open the ```127.0.0.1:8090``` page, it means that the server has started successfully.

```bash
bash bin/ngxway start
```

### (2) Stop server
Execute the following command to stop the ngxway server.

```bash
bash bin/ngxway stop
```

### (3) Restart server
Execute the following command to restart the ngxway server.

```bash
bash bin/ngxway restart
```

### (4) Server log
The logs of ngxway will be recorded in the ```local_volume_logs_dir``` log directory defined in the [./ngxway.conf](./ngxway.conf) file, the default is ```/tmp /logs``` directory.

### (5) To Integrate
Congratulations on successfully installing and starting the ngxway server! However, before you make any modifications to the project, it is not yet ready to provide gateway services for you. If you need to integrate, please refer to the [Wiki](https://github.com/WGrape/ngxway/wiki/).

## 6. Contribution
In the process of using this project, if you encounter any problems, please refer to [Q&A](https://github.com/WGrape/ngxway/wiki/Q&A) document.

Welcome your [Issues](https://github.com/WGrape/ngxway/issues/new) and [Pull Requests](https://github.com/WGrape/ngxway/pulls).