Problem: Few days back we were working with Apache web server and were using it for proxy. We want to use HTTPD for directing requests to 8080 port where Apache tomcat was running.
We configured the proxy settings successfully and it was working perfect. Following is the example of settings for proxy configuration:
proxy_* modules should be loaded for correct execution of this setting. Check /etc/httpd/conf/httpd.conf file to verify whether modules are loaded or not (proxy_* modules should not be commented in the file)
Add following lines in etc/httpd/conf/httpd.conf file :
ProxyRequests Off
ProxyPass /app1 http://127.0.0.1:8080/app1
ProxyPassReverse /app1 http://127.0.0.1:8080/app1
ProxyPass /app2 http://127.0.0.1:8080/app2
ProxyPassReverse /app2 http://127.0.0.1:8080/app2
one fine day we were unabe to access app1 and app2 using proxy, when we checked logs we found following error in error_log (/etc/httpd/logs/error_log)
[error] (13)Permission denied: proxy: HTTP: attempt to connect to 127.0.0.1:8080 (127.0.0.1) failed
[error] ap_proxy_connect_backend disabling worker for (127.0.0.1)
Solution: Run following command
# /usr/sbin/setsebool httpd_can_network_connect 1
OR
# /usr/sbin/setsebool httpd_can_network_connect true
Or you can also set the security settings, Go to Security Level configurations and Change Tab to SELinux. And modify SELinux policy Check “Allow HTTPD scripts and modules to connect to the network” under HTTPD service.
You can add ‘-P’ if you want this change to persist over system restarts, eg:
/usr/sbin/setsebool -P httpd_can_network_connect 1