Tôi đang gặp sự cố khi chạy Apache + Subversion với SSL phía sau proxy Nginx và tôi hy vọng ai đó có thể có câu trả lời. Tôi đã lùng sục google trong nhiều giờ tìm kiếm câu trả lời cho vấn đề của tôi và dường như không thể tìm ra câu trả lời. Những gì tôi thấy là lỗi "502 (Cổng xấu)" khi cố gắng MOVE hoặc COPY bằng cách sử dụng lật đổ; tuy nhiên, việc kiểm tra và cam kết hoạt động tốt. Sau đây là các bộ phận liên quan (tôi nghĩ) của nginx và apache cấu hình tập tin trong câu hỏi:502 Cổng xấu với 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>
Từ những gì tôi có thể nói trong khi nghiên cứu vấn đề này, tên máy chủ phải phù hợp trên cả máy chủ apache cũng như máy chủ nginx, mà tôi đã thực hiện. Ngoài ra, vấn đề này dường như dính xung quanh ngay cả khi tôi thay đổi cấu hình để chỉ sử dụng http.
Tôi đã cố gắng rằng trong quá khứ, nhưng figured nó đáng giá một lần nữa. Thật không may cho tôi, điều đó đã không làm các trick. –
Tôi đã phải chạy 'sudo a2enmod tiêu đề', sau đó nó đã làm việc tuyệt vời! –
tôi đã thêm dòng này nhưng nó không hoạt động trong nhiều năm. hôm nay tôi loại bỏ dòng này và nó hoạt động ngay bây giờ – marstone