<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>pypi &#8211; 天地一沙鸥</title>
	<atom:link href="https://haoluobo.com/tag/pypi/feed/" rel="self" type="application/rss+xml" />
	<link>https://haoluobo.com</link>
	<description>to be continue....</description>
	<lastBuildDate>Thu, 16 Dec 2021 03:37:32 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.2</generator>
	<item>
		<title>使用nginx做pypi的反向代理，搭建pypi官方镜像</title>
		<link>https://haoluobo.com/2012/02/nginxpypi/</link>
		
		<dc:creator><![CDATA[vicalloy]]></dc:creator>
		<pubDate>Tue, 14 Feb 2012 07:06:23 +0000</pubDate>
				<category><![CDATA[编程]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[pypi]]></category>
		<guid isPermaLink="false">/?p=10369</guid>

					<description><![CDATA[受国内的网络环境限制，直接使用python官方的pypi源速度不稳定还经常抽风。对公司来说，搭建一个自己的py [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>受国内的网络环境限制，直接使用python官方的pypi源速度不稳定还经常抽风。对公司来说，搭建一个自己的pypi镜像非常有必要。</p>



<h4 class="wp-block-heading">搭建pypi镜像的目的以及相关方案</h4>



<figure class="wp-block-table"><table><tbody><tr><th>方案</th><th>优点</th><th>缺点</th></tr><tr><td><a href="http://wiki.python.org/moin/PyPiImplementations">PyPiImplementations</a></td><td>功能强大，提供用户注册、包管理等各项功能。</td><td>配置复杂，需对pypi源进行全量同步。全量同步速度慢，且经常失败。</td></tr><tr><td><a href="http://wiki.python.org/moin/PyPiImplementations">PyPiImplementations</a><br>Simple repository with fallback using Apache</td><td>配置相对简单。可通过ftp等方式实现私有包的管理。增加反向代理缓存后可实现官方pypi源的加速。</td><td>部分python包只是在pypi上放了一个链接，真正的包放在自己的服务器上（极少数包），对这类包无法通过反向代理进行加速。<br>权限管理功能稍弱。<br>私有包需要通过ftp等方式进行管理。<br>注：私有包管理的问题可通过安装web版的文件管理工具来规避。</td></tr></tbody></table></figure>



<p>考虑到部门内部pypi镜像的需求简单，不需涉及太多权限功能方面的工作，建议使用“Simple repository with fallback using Apache”方案。</p>



<h4 class="wp-block-heading">反向代理方案</h4>



<p>“Simple repository with fallback using Apache”中只是将本地无法处理的pypi请求直接转发到官方pypi源。在对官方源进行同步时无法实现对官方pypi源进行加速。为解决该问题，需要对官网的请求进行反向代理并缓存。<br>关于反向代理的支持请参考：<a href="http://sealbird.iteye.com/blog/1320559">代理、反向代理知识普及squid apache-mod_proxy lighttpd nginx</a><br>squid是老牌的反向代理服务器，但在实际使用过程中发现squid太过强大的功能导致配置复杂，不推荐使用。<br>nginx发展迅速的新兴服务器，对反向代理提供良好的支持，并被多家大型网站使用。最重要的是nginx的配置比squid要容易太多。</p>



<h4 class="wp-block-heading">nginx配置要点</h4>



<ul class="wp-block-list"><li>参考：
<ul>
<li><a href="http://blog.163.com/insync@126/blog/static/109669852201010160433175/">使用nginx的proxy_cache缓存功能取代squid</a></li>
<li><a href="http://wiki.nginx.org/ChsHttpProxyModule">nginx ChsHttpProxyModule</a> nginx的文档化做的不是太好，在配置中有些要点需要注意。</li>
</ul>
</li><li>安装
<ul>
<li><a href="http://wiki.nginx.org/Install">官方安装文档</a> ubuntu官方源版本比较老，建议添加ppa源再安装。</li>
<li>按照说明添加ppa源不可用时，可查看 /etc/apt/sources.list.d 中的nginx ppa源配置并修正</li>
</ul>
</li><li>nginx配置
<ul>
<li>nginx默认启用了gzip支持。pip无法识别gzip后的网页，需要关闭gzip支持。</li>
</ul>
</li></ul>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: python; title: ; notranslate">
proxy_cache_path  /var/lib/nginx/cache/ levels=1:1:2 inactive=24000h keys_zone=cache:100m;
server {
        listen   8000 default;
        server_name  localhost;
        access_log  /var/log/nginx/localhost.access.log;
        #中间省略部分默认配置
        location /pypi {
                proxy_pass http://pypi.python.org/simple;
        proxy_cache cache;
        proxy_cache_valid  any 2400h;
        }
        location /packages {
                proxy_pass http://pypi.python.org/packages;
        proxy_cache cache;
        proxy_cache_valid  any 24000h;
        }
}
</pre></div>


<h4 class="wp-block-heading">相关链接</h4>



<ul class="wp-block-list"><li><a href="http://www.worldhello.net/2011/03/14/2357.html">搭建本地pypi服务器</a></li><li><a href="http://wiki.python.org/moin/PyPiImplementations">PyPiImplementations</a></li><li><a href="http://sealbird.iteye.com/blog/1320559">代理、反向代理知识普及squid apache-mod_proxy lighttpd nginx</a></li><li><a href="http://blog.163.com/insync@126/blog/static/109669852201010160433175/">使用nginx的proxy_cache缓存功能取代squid</a></li><li><a href="http://wiki.nginx.org/ChsHttpProxyModule">nginx ChsHttpProxyModule</a></li></ul>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
