Tengo un problema al ejecutar Apache + Subversion con SSL detrás de un proxy Nginx y espero que alguien tenga la respuesta. Revisé google durante horas buscando la respuesta a mi problema y parece que no puedo resolverlo. Lo que veo son los errores "502 (Pasarela incorrecta)" al intentar MOVER o COPIAR usando subversión; sin embargo, los pagos y compromisos funcionan bien. Estas son las partes relevantes (creo) de los archivos de nginx y configuración de Apache en cuestión:502 Bad Gateway con nginx + apache + subversion + ssl (COPIA SVN)
Nginx
upstream subversion_hosts {
server 127.0.0.1:80;
}
server {
listen x.x.x.x:80;
server_name hostname;
access_log /srv/log/nginx/http.access_log main;
error_log /srv/log/nginx/http.error_log info;
# redirect all requests to https
rewrite ^/(.*)$ https://hostname/$1 redirect;
}
# HTTPS server
server {
listen x.x.x.x:443;
server_name hostname;
passenger_enabled on;
root /path/to/rails/root;
access_log /srv/log/nginx/ssl.access_log main;
error_log /srv/log/nginx/ssl.error_log info;
ssl on;
ssl_certificate server.crt;
ssl_certificate_key server.key;
add_header Front-End-Https on;
location /svn {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
set $fixed_destination $http_destination;
if ($http_destination ~* ^https(.*)$)
{
set $fixed_destination http$1;
}
proxy_set_header Destination $fixed_destination;
proxy_pass http://subversion_hosts;
}
}
Apache
Listen 127.0.0.1:80
<VirtualHost *:80>
# in order to support COPY and MOVE, etc - over https (443),
# ServerName _must_ be the same as the nginx servername
# http://trac.edgewall.org/wiki/TracNginxRecipe
ServerName hostname
UseCanonicalName on
<Location /svn>
DAV svn
SVNParentPath "/srv/svn"
Order deny,allow
Deny from all
Satisfy any
# Some config omitted ...
</Location>
ErrorLog /var/log/apache2/subversion_error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/subversion_access.log combined
</VirtualHost>
De lo que pude mientras que la investigación este problema, el nombre del servidor tiene que coincidir tanto en el servidor apache como en el servidor nginx, lo cual he hecho. Además, este problema parece mantenerse aunque cambie la configuración para usar solo http.
Había probado que en el pasado, pero pensé valió la pena intentarlo de nuevo. Desafortunadamente para mí, eso no funcionó. –
Tuve que ejecutar 'sudo a2enmod headers', ¡y funcionó muy bien! –
agregué esta línea pero no funciona desde hace años. hoy eliminé esta línea y ahora funciona – marstone