In such scenarios, httpd itself does not generate or host the data, but rather the content is obtained by one or several backend servers, which normally have no direct connection to the external network. As httpd receives a request from a client, the request itself is proxied to one of these backend servers, which then handles the request, generates the content and then sends this content back to httpd, which then generates the actual HTTP response back to the client.

reverse-proxy-arch

 

 

Problems

 

Problem 1 Permission denied in CentOS/RHEL

When using Apache as a reverse proxy, Apache responds with a message that the Bitbucket server is not available and the following can be seen in the Apache error logs:

[error] (13)Permission denied: proxy: HTTP: attempt to connect to 192.168.1.1:7990 (bitbucket.example.com) failed

Cause

By default, SELinux prevents Apache from initiating outbound connections, so it is unable to proxy requests to Bitbucket Server.

Resolution

Run the following command on the server to allow apache to make outbound connections.

/usr/sbin/setsebool -P httpd_can_network_connect 1

 

Reference

https://httpd.apache.org/docs/2.4/howto/reverse_proxy.html