Я пытаюсь настроить прокси-службу для службы упаковки (npm и bower.io) и хочу кэшировать пакеты локально.
Моя конфигурация Apache:
Listen 127.0.0.1:10010
Listen 127.0.0.1:10011
<VirtualHost 127.0.0.1:10011>
ProxyRequests On
SSLEngine On
ServerName 127.0.0.1:10011
SSLProtocol All
SSLCertificateFile /opt/npm-cache/certs/npmcache.crt
SSLCertificateKeyFile /opt/npm-cache/certs/npmcache.key
SSLProxyEngine On
SSLProxyVerify none
SSLProxyCheckPeerCN off
CacheRoot /opt/npm-cache/data/ssl
CacheEnable disk /
CacheDirLevels 5
CacheDirLength 3
CacheDefaultExpire 2628000
ErrorLog /opt/npm-cache/logs/ssl-error.log
CustomLog /opt/npm-cache/logs/ssl-custom.log common
TransferLog /opt/npm-cache/logs/ssl-transfer.log
</VirtualHost>
<VirtualHost 127.0.0.1:10010>
ServerName 127.0.0.1:10010
ProxyRequests On
CacheRoot /opt/npm-cache/data/non-ssl
CacheEnable disk /
CacheDirLevels 5
CacheDirLength 3
CacheDefaultExpire 2628000
ErrorLog /opt/npm-cache/logs/error.log
CustomLog /opt/npm-cache/logs/custom.log common
TransferLog /opt/npm-cache/logs/transfer.log
</VirtualHost>
Это не работает. Проблема, которую я вижу в журналах:
[Mon Jan 27 14:15:01 2014] [info] [client 127.0.0.1] (70014)End of file found: SSL input filter read failed.
[Mon Jan 27 14:15:01 2014] [info] [client 127.0.0.1] Connection closed to child 4 with standard shutdown (server 127.0.0.1:10011)
Сертификаты для моего сервера самоподписаны.
Я предлагаю вам использовать для этой цели nginx, так как это лучший сервер кеширования.
Конфигурация для nginx выглядит примерно так:
server {
listen 443;
server_name www.npmpackages.com;
access_log /var/log/nginx/npmpackages-ssl.access.log;
ssl on;
ssl_certificate ssl/npmpackages_com.bundle.crt;
ssl_certificate_key ssl/npmpackages_com.key;
ssl_session_timeout 5m;
ssl_protocols SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:-LOW:+SSLv3:-EXP;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://www.npmpackages.com;
proxy_cache on;
proxy_cache_valid 200 302 60m;
proxy_cache_valid 404 1m;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}