Sto riscontrando un problema con Apache + Subversion con SSL dietro un proxy Nginx e spero che qualcuno possa avere la risposta. Ho setacciato Google per ore cercando la risposta al mio problema e non riesco a capirlo. Quello che vedo sono gli errori "502 (Bad Gateway)" quando si prova a MOVE o COPY usando subversion; tuttavia, checkout e commit funzionano bene. Qui ci sono le parti pertinenti (credo) dei file nginx e configurazione di Apache in questione:502 Bad Gateway con nginx + apache + subversion + ssl (SVN COPY)
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>
Da quanto ho potuto vedere durante la ricerca questo problema, il nome del server deve corrispondere sia sul server Apache che sul server nginx, cosa che ho fatto. Inoltre, questo problema sembra aggirarsi anche se cambio la configurazione per utilizzare solo http.
avevo provato che in passato, ma figurati valeva la pena sparare ancora. Sfortunatamente per me, questo non ha funzionato. –
Ho dovuto eseguire 'sudo a2enmod headers', quindi ha funzionato alla grande! –
ho aggiunto questa riga ma non funziona per anni. oggi ho rimosso questa linea e ora funziona – marstone