YXORP

SourceForge Logo

YXORP is a reverse proxy for the HTTP protocol. The main focus for YXORP is checking the validity of the traffic, i.e. what would be called 'application layer firewalling' or 'secure reverse proxy' in commercial products. It can check, validate, and change just about anything about a HTTP request or response, can load balance, and all other normal reversed proxy functions. YXORP aims to conform to RFC 2616, RFC 2518, RFC 2109 and other applicable standards.

What YXORP does is receive requests, break all fields and headers apart and feed the information in them to a script engine. The scripts can change all fields except for a few that are required for the connections to work correctly; for instance the Connection: header and the Content-Length header. After the scripts have finished, YXORP then sends the request - including any changes that have been made - on to the web server.

YXORP is written in plain C; it should run on any Unix variant as long as it supports reasonably recent standards. It requires a couple of libraries to build, like libxml2, openssl, and pcre - all mainstream Unix versions have these by default or allow the required development libraries to be easily installed.

There used to be two sets of releases - development and stable. Since the amount of development is rather low in recent years - because YXORP is a mature and stable software - I've decided to no longer differentiate between these. Especially since most major sites that run YXORP that I'm aware of use the 'development' releases anyway. In case of bugs, the last two releases will be supported; bug fixes may still be produced for older versions but this will be decided on a case by case basis.

Documentation (for 2.34): Deployment | Tutorial | Rule concepts | Rule examples | Configuration | Rule language reference | All docs in PDF format
Project pages : Project Summary | Statistics | Browse CVS | Downloadable Files

Changelog for release 2.34 (latest):

Changelog for release 2.33:

Changelog for release 2.32:

Changelog for release 2.31: