SlideShare a Scribd company logo
Zarafa multiserver reverse proxy
Steve Hardy
Cluster node proxy
•   General idea
    – Parts of the system
        • HTTP(s) proxy
        • Zarafa server
    – Some details
        • Session IP locking
        • Internal vs external connections
•   Network layouts
    – SSL offload
    – Loadbalancer
•   Configuration
    – Configuring
    – Testing (stats)
Goal
•   Single exposed ‘host’ to clients for cloud solutions
•   Host may be:
     – Single hostname, single IP
     – Single hostname, round-robin IP


•   Advantages:
     – Easier firewalling
     – Use off-the-shelf proxy / loadbalance hardware
Old situation
New situation
Why it doesn’t work
Client                        Server (Node 1)                    Server (Node 2)
What a nice day, let’s
connect to my fav server
revproxy.zarafa.com

“Hi, please give me john’s
store”
                              “Uh, sorry, I don’t have that,
                              you have to ask Node2, he’s at
                              http://node2.internal.local:237/
                              zarafa”
Dagnabbit, ok, I’ll connect
to node2.internal.local
and retry

CONNECTION
REFUSED


                                                                 *snore*
Why it does work with reverse proxy support
Client                        Server (Node 1)                      Server (Node 2)
What a nice day, let’s
connect to my fav server
revproxy.zarafa.com

“Hi, please give me john’s
store”
                              “Uh, sorry, I don’t have that, you
                              have to ask Node2, he’s at http://
                              node2.internal.local, but I see
                              you connected through a proxy,
                              in that case you should use
                              http://revproxy.zarafa.com/node2
                              ”
Dagnabbit, ok, I’ll connect
to
revproxy.zarafa.com/node2
and retry
                                                                   Here’s john’s store for you.
                                                                   Have fun.
Configuration of nodes
•   Node1
    –   ipHost: node1.local
    –   zarafaPort: 236
    –   zarafaHttpsPort: 237
    –   zarafaProxy: http://proxy.domain.com/node1

•   Node2
    –   ipHost: node2.local
    –   zarafaPort: 236
    –   zarafaHttpsPort: 237
    –   zarafaProxy: http://proxy.domain.com/node2
To revproxy or not to revproxy
•   In some cases using the proxy is unnecessary
     – Local connects between nodes
     – Not very frequent
     – One case:
         • Spooler uses ‘copy to delegated sent-items after send’ feature
         • After sending message, spooler must copy item to sent items folder, which is
           possible on other host
         • Spooler connects to other host
         • Proxy not needed
•   Strategy is:
     – Only return node’s proxy address if the originating request was itself
       proxied
     – Detected by looking at header, uses setting ‘proxy_header’
Proxy headers
•   X-Forwarded-For header
    – Used as originating IP address
    – Used for session <-> IP locking
    – Used in zarafa-stats (including –top)

More Related Content

PDF
Dependency Resolution with Standard Libraries
ZIP
mtl_rubykaigi
KEY
RVM, Bundler and Ruby Tracker
PDF
How to distribute Ruby to the world
PDF
视觉中国的MongoDB应用实践(QConBeijing2011)
PDF
RubyGems 3 & 4
PDF
PHP MVC Tutorial 2
PDF
Построение распределенной системы сбора данных с помощью RabbitMQ, Alvaro Vid...
Dependency Resolution with Standard Libraries
mtl_rubykaigi
RVM, Bundler and Ruby Tracker
How to distribute Ruby to the world
视觉中国的MongoDB应用实践(QConBeijing2011)
RubyGems 3 & 4
PHP MVC Tutorial 2
Построение распределенной системы сбора данных с помощью RabbitMQ, Alvaro Vid...

What's hot (20)

PDF
MongoDB开发应用实践
PDF
Automating Complex Setups with Puppet
PDF
Optcarrot: A Pure-Ruby NES Emulator
PDF
JUDCon 2010 Boston : TorqueBox
PDF
Gemification for Ruby 2.5/3.0
PDF
What is few?
PDF
Fiber in the 10th year
KEY
自分をClojure化する方法
PDF
JUDCon 2010 Boston : BoxGrinder
PDF
Ømq & Services @ Chartboost
PDF
Carton
PDF
Gemification plan of Standard Library on Ruby
PDF
The secret of programming language development and future
PDF
Toster - Understanding the Rails Web Model and Scalability Options
PDF
Chef solo the beginning
PDF
Building Real-Time Applications with Android and WebSockets
PDF
ChefConf 2012 Spiceweasel
PDF
Deployment de Rails
PDF
Troubleshooting RabbitMQ and services that use it
PPTX
Ansible @ WebElement 2015
MongoDB开发应用实践
Automating Complex Setups with Puppet
Optcarrot: A Pure-Ruby NES Emulator
JUDCon 2010 Boston : TorqueBox
Gemification for Ruby 2.5/3.0
What is few?
Fiber in the 10th year
自分をClojure化する方法
JUDCon 2010 Boston : BoxGrinder
Ømq & Services @ Chartboost
Carton
Gemification plan of Standard Library on Ruby
The secret of programming language development and future
Toster - Understanding the Rails Web Model and Scalability Options
Chef solo the beginning
Building Real-Time Applications with Android and WebSockets
ChefConf 2012 Spiceweasel
Deployment de Rails
Troubleshooting RabbitMQ and services that use it
Ansible @ WebElement 2015
Ad

Viewers also liked (8)

PDF
Zararfa SummerCamp 2012 - Debian packaging Giraffe and D-push
PPT
Zarafa SummerCamp 2012 - Zarafa 7.1 features
PPT
Zarafa SummerCamp 2012 - Keynote Steve Hardy - 3 Cool innovations
PPT
Zarafa SummerCamp 2012 - Exchange Web Services on Zarafa
PPT
Zarafa SummerCamp 2012 - Exchange Web Services, technical information
ODP
Zarafa SummerCamp 2012 - Tips & tricks for running Zarafa is larger scale env...
ODP
Zarafa SummerCamp 2012 - Basic Introduction WebApp plugin development
PPTX
Spartacus workouts
Zararfa SummerCamp 2012 - Debian packaging Giraffe and D-push
Zarafa SummerCamp 2012 - Zarafa 7.1 features
Zarafa SummerCamp 2012 - Keynote Steve Hardy - 3 Cool innovations
Zarafa SummerCamp 2012 - Exchange Web Services on Zarafa
Zarafa SummerCamp 2012 - Exchange Web Services, technical information
Zarafa SummerCamp 2012 - Tips & tricks for running Zarafa is larger scale env...
Zarafa SummerCamp 2012 - Basic Introduction WebApp plugin development
Spartacus workouts
Ad

Similar to Zarafa SummerCamp 2012 - Zarafa Cluster using a reverse proxy (20)

PPTX
Programming proxies to do what we need so we don't have to talk to the networ...
PDF
tokyo.vcl発表資料(varnish+squid)
PDF
Scalable Architecture 101
PPTX
Writing Portable WebSockets in Java
PPTX
Building WebSocket and Server Side Events Applications using Atmosphere
PDF
Load balancing at tuenti
PDF
haproxy-150423120602-conversion-gate01.pdf
PPTX
HAProxy
PDF
HTML5 Websockets and Java - Arun Gupta
PPT
Web Server Load Balancer
PPTX
Scaling connections in peer-to-peer applications
PDF
Apache httpd 2.4 Reverse Proxy: The Hidden Gem
PDF
Websocket 1.0
PDF
Server Load Balancing on pfSense 2.4 - pfSense Hangout July 2017
PDF
Haproxy - zastosowania
PDF
SenchaLabs Connect & Express
PDF
HAProxy tech talk
PDF
Relayd: a load balancer for OpenBSD
PDF
Building HTML5 WebSocket Apps in Java at JavaOne Latin America 2012
PDF
Intro to WebSockets and Comet
Programming proxies to do what we need so we don't have to talk to the networ...
tokyo.vcl発表資料(varnish+squid)
Scalable Architecture 101
Writing Portable WebSockets in Java
Building WebSocket and Server Side Events Applications using Atmosphere
Load balancing at tuenti
haproxy-150423120602-conversion-gate01.pdf
HAProxy
HTML5 Websockets and Java - Arun Gupta
Web Server Load Balancer
Scaling connections in peer-to-peer applications
Apache httpd 2.4 Reverse Proxy: The Hidden Gem
Websocket 1.0
Server Load Balancing on pfSense 2.4 - pfSense Hangout July 2017
Haproxy - zastosowania
SenchaLabs Connect & Express
HAProxy tech talk
Relayd: a load balancer for OpenBSD
Building HTML5 WebSocket Apps in Java at JavaOne Latin America 2012
Intro to WebSockets and Comet

More from Zarafa (20)

PPTX
Zarafa SummerCamp 2012 - Android Workshop
PPT
Zarafa SummerCamp 2012 - Steve Hardy Friday Keynote
ODP
Zarafa SummerCamp 2012 - Project approach when migrating to Zarafa
ODP
Zarafa SummerCamp 2012 - Keynote Peter Ganten
ODP
Zarafa SummerCamp 2012 - Yubikey integration
PDF
Zararfa SummerCamp 2012 - HA, multi-tenancy and SSO in Zentyal 2 and 3.pdf
PDF
Zararfa SummerCamp 2012 - Fedora update & PAM-MAPI Zarafa Ready certified com...
PDF
Zararfa SummerCamp 2012 - Community update and Zarafa Development Process
PDF
Zararfa summer camp 2012 interesting tips & tricks when migrating to zarafa
ODP
Zarafa SummerCamp 2012 - Deploying Zarafa Archiver
ODP
Zarafa SummerCamp 2012 - Open Generation Gap
PPTX
Zarafa SummerCamp 2012 - Z-push 2.0 changes for administrators
PDF
Zararfa SummerCamp 2012 - Performing fast backups in large scale environments...
PPT
Zarafa SummerCamp 2012 - Communication - how engineers can outperform
PDF
Zararfa SummerCamp 2012 - From RHEL to RHEV to Cloud
PDF
Zararfa SummerCamp 2012 - One solution of two vendors solves plenty needs
ODP
Zarafa SummerCamp 2012 - Zarafa in the Capgemini Open Cloud
PPTX
Zarafa SummerCamp 2012 - DMS ECM - simply for everyone
PPTX
Zarafa SummerCamp 2012 - WebApp introduction and roadmap
ODP
Zarafa SummerCamp 2012 - Project Approach when Migrating from Exchange to Zarafa
Zarafa SummerCamp 2012 - Android Workshop
Zarafa SummerCamp 2012 - Steve Hardy Friday Keynote
Zarafa SummerCamp 2012 - Project approach when migrating to Zarafa
Zarafa SummerCamp 2012 - Keynote Peter Ganten
Zarafa SummerCamp 2012 - Yubikey integration
Zararfa SummerCamp 2012 - HA, multi-tenancy and SSO in Zentyal 2 and 3.pdf
Zararfa SummerCamp 2012 - Fedora update & PAM-MAPI Zarafa Ready certified com...
Zararfa SummerCamp 2012 - Community update and Zarafa Development Process
Zararfa summer camp 2012 interesting tips & tricks when migrating to zarafa
Zarafa SummerCamp 2012 - Deploying Zarafa Archiver
Zarafa SummerCamp 2012 - Open Generation Gap
Zarafa SummerCamp 2012 - Z-push 2.0 changes for administrators
Zararfa SummerCamp 2012 - Performing fast backups in large scale environments...
Zarafa SummerCamp 2012 - Communication - how engineers can outperform
Zararfa SummerCamp 2012 - From RHEL to RHEV to Cloud
Zararfa SummerCamp 2012 - One solution of two vendors solves plenty needs
Zarafa SummerCamp 2012 - Zarafa in the Capgemini Open Cloud
Zarafa SummerCamp 2012 - DMS ECM - simply for everyone
Zarafa SummerCamp 2012 - WebApp introduction and roadmap
Zarafa SummerCamp 2012 - Project Approach when Migrating from Exchange to Zarafa

Recently uploaded (20)

PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
Machine Learning_overview_presentation.pptx
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Machine learning based COVID-19 study performance prediction
PDF
Encapsulation_ Review paper, used for researhc scholars
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
A Presentation on Artificial Intelligence
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
cuic standard and advanced reporting.pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Programs and apps: productivity, graphics, security and other tools
Chapter 3 Spatial Domain Image Processing.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
Dropbox Q2 2025 Financial Results & Investor Presentation
Building Integrated photovoltaic BIPV_UPV.pdf
Machine Learning_overview_presentation.pptx
Review of recent advances in non-invasive hemoglobin estimation
Assigned Numbers - 2025 - Bluetooth® Document
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Machine learning based COVID-19 study performance prediction
Encapsulation_ Review paper, used for researhc scholars
“AI and Expert System Decision Support & Business Intelligence Systems”
Diabetes mellitus diagnosis method based random forest with bat algorithm
A Presentation on Artificial Intelligence
NewMind AI Weekly Chronicles - August'25-Week II
Unlocking AI with Model Context Protocol (MCP)
Advanced methodologies resolving dimensionality complications for autism neur...
cuic standard and advanced reporting.pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
MYSQL Presentation for SQL database connectivity
Programs and apps: productivity, graphics, security and other tools

Zarafa SummerCamp 2012 - Zarafa Cluster using a reverse proxy

  • 1. Zarafa multiserver reverse proxy Steve Hardy
  • 2. Cluster node proxy • General idea – Parts of the system • HTTP(s) proxy • Zarafa server – Some details • Session IP locking • Internal vs external connections • Network layouts – SSL offload – Loadbalancer • Configuration – Configuring – Testing (stats)
  • 3. Goal • Single exposed ‘host’ to clients for cloud solutions • Host may be: – Single hostname, single IP – Single hostname, round-robin IP • Advantages: – Easier firewalling – Use off-the-shelf proxy / loadbalance hardware
  • 6. Why it doesn’t work Client Server (Node 1) Server (Node 2) What a nice day, let’s connect to my fav server revproxy.zarafa.com “Hi, please give me john’s store” “Uh, sorry, I don’t have that, you have to ask Node2, he’s at http://node2.internal.local:237/ zarafa” Dagnabbit, ok, I’ll connect to node2.internal.local and retry CONNECTION REFUSED *snore*
  • 7. Why it does work with reverse proxy support Client Server (Node 1) Server (Node 2) What a nice day, let’s connect to my fav server revproxy.zarafa.com “Hi, please give me john’s store” “Uh, sorry, I don’t have that, you have to ask Node2, he’s at http:// node2.internal.local, but I see you connected through a proxy, in that case you should use http://revproxy.zarafa.com/node2 ” Dagnabbit, ok, I’ll connect to revproxy.zarafa.com/node2 and retry Here’s john’s store for you. Have fun.
  • 8. Configuration of nodes • Node1 – ipHost: node1.local – zarafaPort: 236 – zarafaHttpsPort: 237 – zarafaProxy: http://proxy.domain.com/node1 • Node2 – ipHost: node2.local – zarafaPort: 236 – zarafaHttpsPort: 237 – zarafaProxy: http://proxy.domain.com/node2
  • 9. To revproxy or not to revproxy • In some cases using the proxy is unnecessary – Local connects between nodes – Not very frequent – One case: • Spooler uses ‘copy to delegated sent-items after send’ feature • After sending message, spooler must copy item to sent items folder, which is possible on other host • Spooler connects to other host • Proxy not needed • Strategy is: – Only return node’s proxy address if the originating request was itself proxied – Detected by looking at header, uses setting ‘proxy_header’
  • 10. Proxy headers • X-Forwarded-For header – Used as originating IP address – Used for session <-> IP locking – Used in zarafa-stats (including –top)