Using HAProxy - phires/go-guerrilla GitHub Wiki
HAProxy configuration
Add the following to your haproxy.conf
frontend ft_smtp
bind 0.0.0.0:25
mode tcp
timeout client 3m
log global
option tcplog
default_backend bk_smtp
backend bk_smtp
mode tcp
log global
option tcplog
timeout server 3m
timeout connect 10s
server guerrilla 127.0.0.1:2525 send-proxy
This will let HAProxy listen on Port 25 and forward the traffic to localhost Port 2525.
For multiple backend servers adjust the server
line in the backend config accordingly, e.g. for two backends:
server guerrilla-1 192.168.1.1:2525 send-proxy
server guerrilla-2 192.168.1.2:2525 send-proxy
go-guerrilla config
If using HAProxy with the default configuration (and up to version 1.6.5), every connecting will be greeted with
220 mail.test.de SMTP Guerrilla(v1.6.5-12-g13718a2) #1 (1) 2024-06-06T18:42:18+02:00
554 5.5.1 Unrecognized command
Since version 1.6.6 you can enable the PROXY mode within the config for every server.
Add the line "proxyon" : true,
to your server config. go-guerrilla will accept and parse
the PROXY command and will set the RemoteIP given by the remote server.