때때로 https를 통해 내 사이트를 볼 때 다음 오류(apache의 error.log에서)가 발생합니다.
(502)Unknown error 502: proxy: pass request body failed to xxx.xxx.xxx.xxx:443
이것이 무엇인지, 왜 이런 일이 발생하는지 완전히 확신할 수 없으며 일관성도 없습니다.
요청 경로는 다음과 같습니다.
- 브라우저
- 프록시 서버(mod_proxy + mod_ssl을 사용하는 Apache)
- 로드 밸런서(aws)
- 웹 서버(mod_ssl을 사용하는 Apache)
프록시 서버의 구성은 다음과 같습니다.
<VirtualHost *:443>
ProxyRequests Off
ProxyVia On
ServerName www.xxx.co.uk
ServerAlias xxx.co.uk
<Directory proxy:*>
Order deny,allow
Allow from all
</Directory>
<Proxy *>
AddDefaultCharset off
Order deny,allow
Allow from all
</Proxy>
ProxyPass / balancer://cluster:443/ lbmethod=byrequests
ProxyPassReverse / balancer://cluster:443/
ProxyPreserveHost off
SSLProxyEngine On
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /var/www/vhosts/xxx/ssl/www.xxx.co.uk.cert
SSLCertificateKeyFile /var/www/vhosts/xxx/ssl/www.xxx.co.uk.key
<Proxy balancer://cluster>
BalancerMember https://xxx.eu-west-1.elb.amazonaws.com
</Proxy>
</VirtualHost>
문제가 무엇인지 아시나요?
답변1
제 경우에는 백엔드(stunnel)가 Apache가 보내는 SSL 버전을 받아들이지 않는 것이 문제였습니다. stunnel이 "routines:SSL3_GET_RECORD:wrong version number"를 보고하고 있다는 것을 syslog에서 발견한 후 다음에서 해결책을 찾았습니다.https://serverfault.com/a/303851/69972