====== Apache Module mod_proxy ====== See: [[https://httpd.apache.org/docs/current/mod/mod_proxy.html]] **Apache mod_proxy library:** The ability to use Apache as a reverse proxy is provided through a shared library named mod_proxy.so. This module is not enabled by default, so you must edit Apache’s httpd.conf file to enable it. You also need to enable Apache’s mod_proxy_http.so shared library. **Enable the mod_proxy and mod_http modules in Apache’s httpd.conf file.** Uncomment the appropriate lines in Apache’s httpd.conf file to enable the Apache mod_proxy and mod_proxy_http modules. **Note that this may not apply to newer versions of Apache2 and Ubuntu. SEE BELOW** ### Enable LoadModule entry for Apache mod_proxy and mod_proxy_http ### #LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so #LoadModule proxy_scgi_module modules/mod_proxy_scgi.so Instead, maybe enable the appropriate apache proxy modules, and restart apache server: sudo a2enmod proxy sudo a2enmod proxy_http sudo systemctl restart apache2 Example of Reverse Proxy/Gateway in apache virtual hosts file. Reverse Proxy ProxyPass "/foo" "http://foo.example.com/bar" ProxyPassReverse "/foo" "http://foo.example.com/bar" **SEE the following PER ABOVE** This is from Ubuntu server guide [[https://assets.ubuntu.com/v1/09200365-ubuntu-server-guide-2023-07-11.pdf]] Configure apache2 Apache2 is configured by placing directives in plain text configuration files in /etc/apache2/. These directives are separated between the following files and directories: Files • apache2.conf The main Apache2 configuration file. Contains settings that are global to Apache2. Note: Historically, the main Apache2 configuration file was httpd.conf, named after the “httpd” daemon. In other distributions (or older versions of Ubuntu), the file might be present. In modern releases of Ubuntu, all configuration options have been moved to apache2.conf and the below referenced directories and httpd.conf no longer exists. • envvars File where Apache2 environment variables are set. • magic Instructions for determining MIME type based on the first few bytes of a file. • ports.conf Houses the directives that determine which TCP ports Apache2 is listening on **Tutorial - Running a Reverse Proxy in Apache** [[http://www.apachetutor.org/admin/reverseproxies]] **Virtual Host Examples** [[https://httpd.apache.org/docs/2.4/vhosts/examples.html]]