All Projects → sozu-proxy → Sozu

sozu-proxy / Sozu

Licence: agpl-3.0
Sōzu HTTP reverse proxy, configurable at runtime, fast and safe, built in Rust. It is awesome! Ping us on gitter to know more

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Sozu

Multitor
Create multiple TOR instances with a load-balancing.
Stars: ✭ 624 (-53.47%)
Mutual labels:  proxy, http-proxy
Citadelcore
Cross platform filtering HTTP/S proxy based on .NET Standard 2.0.
Stars: ✭ 28 (-97.91%)
Mutual labels:  proxy, http-proxy
Iisexpress Proxy
A simple local proxy for accessing IIS Express from remote machines.
Stars: ✭ 633 (-52.8%)
Mutual labels:  proxy, http-proxy
Proxy admin free
Proxy是高性能全功能的http代理、https代理、socks5代理、内网穿透、内网穿透p2p、内网穿透代理、内网穿透反向代理、内网穿透服务器、Websocket代理、TCP代理、UDP代理、DNS代理、DNS加密代理,代理API认证,全能跨平台代理服务器。
Stars: ✭ 487 (-63.68%)
Mutual labels:  proxy, http-proxy
Nitmproxy
Proxy server based on netty
Stars: ✭ 94 (-92.99%)
Mutual labels:  proxy, http-proxy
Awslambdaproxy
An AWS Lambda powered HTTP/SOCKS web proxy
Stars: ✭ 571 (-57.42%)
Mutual labels:  proxy, http-proxy
Broxy
An HTTP/HTTPS intercept proxy written in Go.
Stars: ✭ 912 (-31.99%)
Mutual labels:  proxy, http-proxy
Free Proxy List
🔥Free proxy servers list / Updated hourly!
Stars: ✭ 326 (-75.69%)
Mutual labels:  proxy, http-proxy
Http Proxy Middleware
⚡ The one-liner node.js http-proxy middleware for connect, express and browser-sync
Stars: ✭ 8,730 (+551.01%)
Mutual labels:  proxy, http-proxy
Noginx
High performance HTTP and reverse proxy server based on Node.js. 基于 Node.js 的高性能 HTTP 及反向代理服务器,类似nginx。
Stars: ✭ 53 (-96.05%)
Mutual labels:  proxy, http-proxy
Jwtproxy
An HTTP-Proxy that adds AuthN through JWTs
Stars: ✭ 379 (-71.74%)
Mutual labels:  proxy, http-proxy
Proxy.py
⚡⚡⚡Fast, Lightweight, Pluggable, TLS interception capable proxy server focused on Network monitoring, controls & Application development, testing, debugging
Stars: ✭ 1,291 (-3.73%)
Mutual labels:  proxy, http-proxy
Proxy requests
a class that uses scraped proxies to make http GET/POST requests (Python requests)
Stars: ✭ 357 (-73.38%)
Mutual labels:  proxy, http-proxy
Trickster
Open Source HTTP Reverse Proxy Cache and Time Series Dashboard Accelerator
Stars: ✭ 1,306 (-2.61%)
Mutual labels:  http-proxy, performance
Rocky
Full-featured, middleware-oriented, programmatic HTTP and WebSocket proxy for node.js
Stars: ✭ 357 (-73.38%)
Mutual labels:  proxy, http-proxy
Rotating Proxy
Rotating TOR proxy with Docker
Stars: ✭ 739 (-44.89%)
Mutual labels:  proxy, http-proxy
Memoize State
The magic memoization for the State management. ✨🧠
Stars: ✭ 305 (-77.26%)
Mutual labels:  proxy, performance
Fiddler Plus
自定义的Fiddler规则,多环境切换、解决跨域开发、快速调试线上代码必备|高效调试分析利器
Stars: ✭ 325 (-75.76%)
Mutual labels:  proxy, http-proxy
Tiny Http Proxy
Maybe the tiniest HTTP proxy that also has a cache
Stars: ✭ 34 (-97.46%)
Mutual labels:  proxy, http-proxy
Contentajs
A nodejs server that proxies to Contenta CMS and holds custom code.
Stars: ✭ 90 (-93.29%)
Mutual labels:  proxy, performance

Sōzu · Join the chat at https://gitter.im/sozu-proxy/sozu Build Status

Sōzu is a lightweight, fast, always-up reverse proxy server.

Why use Sōzu?

  • Hot configurable: Sozu can receive configuration changes at runtime through secure unix sockets.
  • Upgrades without restarting: Sozu is always-up, meaning it upgrades itself while still processing requests.
  • Handles SSL: Sozu handles SSL, so your backend servers can focus on what they do best.
  • Protects your network: Sozu protect backends by shielding them behind the reverse proxy, limiting direct network access. Sozu uses Rust, a language primed for memory safety. And even if a worker is exploited, sozu workers are sandboxed.

Building and starting

Requirements:

  • openssl 1.0.1 or above (including libraries/includes, ie apt install libssl-dev / rpm install openssl-devel

You can create the required executables like this:

cd ctl && cargo build; cd ../bin && cargo build

This will create the sozu executable for the reverse proxy, and sozuctl to command it.

To start the reverse proxy:

cd bin;
../target/debug/sozu start -c config.toml

You can edit the reverse proxy's configuration with the config.toml file. You can declare new applications, their frontends and backends through that file, but for more flexibility, you should use the command socket (you can find one end of that unix socket at the path designed by command_socket in the configuration file).

sozuctl has a few commands you can use to interact with the reverse proxy:

  • soft shutdown (wait for active connections to stop): sozuctl -c config.toml shutdown
  • hard shutdown: sozuctl -c config.toml shutdown --hard
  • display the list of current configuration messages: sozuctl -c config.toml state dump
  • save the configuration state to a file: sozuctl -c config.toml state save -f state.json

For OSX build

Mac OS uses an old version of openssl, so we need to use one from Homebrew:

brew install openssl
brew link --force openssl

If it does not work, set the following environment variables before building:

export OPENSSL_LIB_DIR=/usr/local/opt/openssl/lib/
export OPENSSL_INCLUDE_DIR=/usr/local/opt/openssl/include/

Logging

The reverse proxy uses env_logger. You can select which module displays logs at which level with an environment variable. Here is an example to display most logs at info level, but use trace level for the HTTP parser module:

RUST_LOG=info,sozu_lib::parser::http11=trace ./target/debug/sozu

Exploring the source

  • lib/: the sozu_lib reverse proxy library contains the event loop management, the parsers and protocols
  • bin/: the sozu executable wraps the library in worker processes, and handle dynamic configuration
  • ctl/: the sozuctl executable can send commands to the reverse proxy

License

Copyright (C) 2015-2018 Geoffroy Couprie, Clément Delafargue and Clever Cloud

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, version 3.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].