有人知道如何使用Squid代理Maven存储库吗?
有哪些配置文件?
主要问题在于,maven客户端发出的HTTP请求带有控制缓存行为的标头(我想绕过该标头)。
这是一个典型的请求:
GET /maven/proxy/jboss-public/org/richfaces/richfaces-bom/4.2.0.Final/richfaces-bom-4.2.0.Final.pom HTTP/1.1
Cache-control: no-cache
Cache-store: no-store
Pragma: no-cache
Expires: 0
Accept-Encoding: gzip
User-Agent: Apache-Maven/3.0.4 (Java 1.6.0_26; Linux 2.6.32-38-generic)
Host: 192.168.2.171
Connection: Keep-Alive
我已经disk_cache
proxy_http
为此使用了Apache HTTPD(和启用的模块),但是我正在创建一个镜像,而不是一个代理。
这是配置(基于该站点):
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
# central
ProxyPass /maven/proxy/central http://repo1.maven.org/maven2
ProxyPassReverse /maven/proxy/central http://repo1.maven.org/maven2
CacheEnable disk /maven/proxy/central
# jboss-public-repository-group
ProxyPass /maven/proxy/jboss-public http://repository.jboss.org/nexus/content/groups/public
ProxyPassReverse /maven/proxy/jboss-public http://repository.jboss.org/nexus/content/groups/public
ProxyPassReverseCookiePath /nexus /maven/proxy/jboss-public
CacheEnable disk /maven/proxy/jboss-public
# codehaus
ProxyPass /maven/proxy/codehaus http://repository.codehaus.org/
ProxyPassReverse /maven/proxy/codehaus http://repository.codehaus.org/
CacheEnable disk /maven/proxy/codehaus
CacheDirLength 2
CacheDirLevels 3
# Override default cache expiration and control
CacheDefaultExpire 2419200
CacheMaxExpire 2419200
# Ignore requests to not serve from cache. Maven data never changes.
CacheIgnoreCacheControl On
CacheIgnoreNoLastMod On
CacheStoreNoStore On
# Default max file size is 64K. Set to 1GB.
CacheMaxFileSize 1073741824
1
您是否考虑过使用nexus?
—
artbristol 2012年
我当然考虑过了。我还测试了其他人。但是没有什么比代理模式下的Apache快。这就是为什么我想使用真实的代理并使用Squid来获得更多性能的原因。
—
Anthony O.
如果您需要性能,请使用内部工件存储库(如工件,联系或Apache档案库)更有意义。每当您想要一个新模块时,他们都会从Internet下载并存储在您的本地网络中,如果您网络中的某人也需要该模块,则无需再次访问Internet进行下载。节省带宽,无需担心Cachesize。
—
Joao Vitorino
我同意@JoaoVitorino-使用人工制品的快速缓存可能是最好的选择。
—
slm