New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

net/haproxy: add HAProxy load balancer to plugins #10

Merged
merged 1 commit into from Apr 18, 2016

Conversation

Projects
None yet
2 participants
@fraenki
Member

fraenki commented Apr 17, 2016

This adds the popular HAProxy load balancer to OPNsense. It allows for far more complex configurations and has a superior feature-set when compared to the (included) relayd load balancer.

Wording/language improvements, code reviews and suggestions are very very welcome!
Feel free to assign any HAProxy issue to me from now on.

Sponsored by: markt.de

LIMITATIONS

  • HAProxy must be build with LUA option
  • not compatible with the pf***** HAProxy plugin (i.e. you can't just import your pf***** HAProxy config)
  • currently does not cleanup/wipe old certificates and lua scripts from disk if they become obsolete
  • currently it's not possible to use (host, port) aliases with this plugin
  • adopts HAProxy's naming conventions, so don't be confused ;-)

Besides that some more complex configurations may be a bit tricky on first attempt (especially ACLs/Actions): All possible parameters are always visible, even if they are not usable in this combination, which can be quite confusing. I hope this will be fixed alongside opnsense/core#870.

WARNING

I consider this plugin to be ALPHA quality software. While the code was tested fairly well, the resulting HAProxy configuration may contain errors or non-functional entries. The plugin should be ready for production use alongside the 16.7 release of OPNsense. (Please ship this plugin with 16.1.x to get some feedback and fix critical bugs before 16.7.)

ACKNOWLEDGEMENT

Thanks to @fichtner and @AdSchellevis for their tremendous support! This plugin uses a lot existing OPNsense code, which is reflected by the copyright notes. Besides that it was apparently heavily inspired by the pf***** HAProxy plugin (but no original code was included).

SCREENSHOTS

Some screenshots to demonstrate how this plugin integrates with the HAProxy framework and GUI.

ha_frontend
ha_backend

Add servers once, but use them in multiple configurations:
ha_server

Define your own (complex) health checks:
ha_health

Upload and manage your Lua scripts:
ha_lua

Define your own HTTP error pages:
ha_errorfile

Get useful hints on syntax errors or other configuration issues:
ha_syntax_error

@fichtner

This comment has been minimized.

Show comment
Hide comment
@fichtner

fichtner Apr 18, 2016

Member

Hi Frank,

This is amazing work, thank you very much!!

I'll have some minor follow ups and we'll discuss the integration plan/timeline this week (some commits still need to go on the release in core.git).

Cheers,
Franco

Member

fichtner commented Apr 18, 2016

Hi Frank,

This is amazing work, thank you very much!!

I'll have some minor follow ups and we'll discuss the integration plan/timeline this week (some commits still need to go on the release in core.git).

Cheers,
Franco

@fichtner fichtner merged commit b0319d9 into opnsense:master Apr 18, 2016

@AdSchellevis AdSchellevis referenced this pull request Apr 19, 2016

Closed

Reverse proxy feature #900

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment