Question

I am new both to Apache and HAporxy. I have been tasked to create a reverse proxy

Hi guys,

I am new both to Apache and HAporxy. I have been tasked to create a reverse proxy.

One example of what needs to be dun:

client ==?= moodle.mycompany.com ==> proxy ==> moodle01.mycompany.net/elearning

client ==?= data.mycompany.com ==> proxy ==> backend.data/foo

Both connection from client to proxy and from proxy to backend need to be over SSl - this is working

When client tries to connect she/ he must present cert - this is working

“land” to backend subfolder - this is working when testing from LAN

client shoud allways see just moodle.mycompany.com never backend.moodle/elearning - not working

When I test from my LAN reverse proxy is working, client lands to subfolder on lweb server, but url that is displayed is from backend server, when i test outside my LAN, client lands on root of web server.

I am quite new to all this, and as much as Itry to read on the subject I am not certain what is what and what I need to do.

Here is my config so far:

frontend

frontend Proxy

bind *:443 ssl crt /etc/ssl/data.pem crt /etc/ssl/moodle.pem ca-file /etc/ssl//sca.pem verify required

acl for manipulation

acl url_moodle hdr_beg(host) -i moodle

acl url_epero hdr_beg(host) -i data

backend

use_backend moodle if url_moodle

use_backend data if url_data

backend moodle

server moodle-01 moodle01.mycompany.net:443 ssl crt /etc/ssl/certs/intermediate.pem verify none

reqrep ^([^\ :])\ (.) \1\ /elearning/\2

backend data

server data1 data.mycompany.com:443 ssl crt /etc/ssl/certs/intermediate.pem verify none


Submit an answer

This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Sign In or Sign Up to Answer

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Want to learn more? Join the DigitalOcean Community!

Join our DigitalOcean community of over a million developers for free! Get help and share knowledge in Q&A, subscribe to topics of interest, and get courses and tools that will help you grow as a developer and scale your project or business.

Hey friend!

So this is a fun project to start with! Totally possible to do though, I don’t think this is going to be the one that causes you too many headaches. You seem to already have a good mind for it.

Now, for my time, there is no simpler configuration than Apache. A thousand Nginx users just turned their heads toward me and I want to apologize to them in advance. To me the syntax is just easier, and frankly it’s probably plenty for your need. Check out this guide:

https://www.digitalocean.com/community/tutorials/how-to-use-apache-http-server-as-reverse-proxy-using-mod_proxy-extension

This is an older tutorial but honestly, this process hasn’t changed in a long time. Imagine this is your total virtual host for the first example you needed:

<VirtualHost *:*>
    ServerName moodle.mycompany.com
    ProxyPreserveHost On
    ProxyPass / http://moodle01.mycompany.net/elearning/
    ProxyPassReverse / http://moodle01.mycompany.net/elearning/
</VirtualHost>

There are always more complicated circumstances than the ones in my head, so forgive me if this does leave out a need. That said, I honestly think it could be as simple as that. The steps in that tutorial will lead you all the way through the requirements, as it isn’t as simple as “install apache and plug in that code” (need to enable extensions, etc). Hopefully it helps!

Jarland