Eu estou tentando usar ProxyPass e ProxyPassReverse para solicitações de proxy através do Apache para outra instância do servidor que está vinculada ao localhost em uma porta TCP diferente que o Vhost existe (VHost está vinculado a: 80, quando o destino está vinculado a: 5000).
No entanto, recebo repetidamente HTTP 503 ao acessar o local.
De acordo com a documentação do ProxyPass ...
<VirtualHost *:80>
ServerName apacheserver.domain.local
DocumentRoot /var/www/redmine/public
ErrorLog logs/redmine_error
<Directory /var/www/redmine/public>
Allow from all
Options -MultiViews
Order allow,deny
AllowOverride all
</Directory>
</VirtualHost>
PassengerTempDir /tmp/passenger
<Location /rhodecode>
ProxyPass http://127.0.0.1:5000/rhodecode
ProxyPassReverse http://127.0.0.1:5000/rhodecode
SetEnvIf X-Url-Scheme https HTTPS=1
</Location>
Eu testei a vinculação do servidor alternativo ao endereço IP da interface e ocorreu o mesmo problema.
A solicitação de serviço do servidor é uma instância da pasta python: httpserver, e foi configurada para usar o sufixo / rodecode (como eu vi isso para ser mencionado em outros posts sobre o ProxyPass). A documentação do próprio projeto , Rhodecode, reporta para usar o acima.
O problema é persistente se eu segmentar outro servidor que está sendo exibido em uma porta diferente.
O ProxyPass permite o proxy para uma porta TCP diferente?
[atualização]
Eu não vou deletar isso, caso alguém encontre o mesmo problema.
Eu configurei um ErrorLog e, nesse ErrorLog, o seguinte erro foi relatado:
[Wed Nov 09 11:36:35 2011] [error] (13)Permission denied: proxy: HTTP: attempt to connect to 127.0.0.1:5000 (192.168.100.100) failed
[Wed Nov 09 11:36:35 2011] [error] ap_proxy_connect_backend disabling worker for (192.168.100.100)
Depois de mais algumas pesquisas, tentei definir o SELinux como permissivo ( echo 0 >/selinux/enforce
) e tente novamente.
Acontece que o SELinux booleano httpd_can_network_connect
deve ser definido como 1
.
Para persistência na reinicialização:
setsebool -P httpd_can_network_connect=1