昨天尝试用nginx搭建nuget镜像服务器,镜像服务器需要两个功能:1)反向代理;2)内容缓存。
用nginx做反向代理,配置非常简单,只需在/etc/nginx/nginx.conf中添加一个包含proxy_pass的server设置:
server_name
镜像服务器主机名;
location / {
proxy_pass http://www.nuget.
而添加缓存功能,配置稍微复杂些。
首先要创建一个用于存放缓存文件的文件夹,比如这里用&/data/nuget-cache 。
mkdir /data/nuget-cache
然后在nginx.conf的http设置部分添加proxy_cache_path设置:
proxy_cache_path /data/nuget-cache levels=1:2 keys_zone=nuget-cache:20m max_size=50g inactive=168h;
* keys_zone指的是缓存空间名称。
* max_size指的是缓存文件可以占用的最大空间。
* inactive指的是如果一个缓存文件多长时间不被访问,就会被删除。
接着在server设置部分添加proxy_cache与proxy_cache_valid设置:
server_name
镜像服务器主机名;
location / {
proxy_pass http://www.nuget.
proxy_cache nuget-
proxy_cache_valid 168h;
*&proxy_cache设置的就是proxy_cache_path中keys_zone的值。
*&proxy_cache_valid设置的是缓存过期时间,比如这里168小时过期。
这样设置后运行nginx,发现只有少部分内容被缓存,大部分内容不能被缓存,比如下面的URL的响应内容就不能被缓存:
http://www.myget.org/F/aspnetvnext/api/v2/FindPackagesById%28%29?id=%27System.Linq%27
查看http响应头(http headers),发现了下面2个http header:
Cache-Control: private
Set-Cookie: ai_session=ad829b6cfa7f8e32fada661|T03:52:38.:00|T03:52:38.4219541
+00:00; expires=Wed, 24-Jun-:38 GMT; path=/
问题就是它们引起的,需要在nginx中通过proxy_ignore_headers设置忽略它们,设置方法如下:
server_name
镜像服务器主机名;
location / {
proxy_pass http://www.nuget.
proxy_cache nuget-
proxy_cache_valid 168h;
proxy_ignore_headers Set-Cookie Cache-C
proxy_hide_header Cache-C
proxy_hide_header Set-C
【参考资料】
【相关链接】
阅读(...) 评论()内置对象Date的常见用法
一、倒计时天数
&span style=&font-size:18&&window.onload=function(){
var a=new Date();
var b=new Date(&&);
var lefttime=Math.ceil((b.getTime()-a.getTime())/(24*60*60*1000));
document.getElementById('show').innerHTML=
二、抢时限
&span style=&font-size:18&& function showTime(){
var a=new Date();
var b=new Date(&,12:20:12&);
var lefttime=parseInt((b.getTime()-a.getTime())/1000);//秒
var d=parseInt(lefttime/(24*60*60));//天
var h=parseInt(lefttime/(60*60)%24);//时
var m=parseInt(lefttime/60%60);
var s=parseInt(lefttime%60);
document.getElementById('show').innerHTML=d+'天'+h+'小时'+m+'分'+s+'秒';
setInterval(showTime,500);
三、显示时间
&span style=&font-size:18&&function check(i){
if (i&10) {
return '0'+i;
function showTime(){
var myDate=new Date();
var year=myDate.getFullYear();
var month=myDate.getMonth()+1;
var date=myDate.getDate();//日
var w=myDate.getDay();//星期
var h=myDate.getHours();
var m=myDate.getMinutes();
var s=myDate.getSeconds();
var week=new Array(7);
m=check(m);
h=check(h);
s=check(s);
week[0]=&星期日&;
week[1]=&星期一&;
week[2]=&星期二&;
week[3]=&星期三&;
week[4]=&星期四&;
week[5]=&星期五&;
week[6]=&星期六&;
document.getElementById('show').innerHTML=year+'年'+month+'月'+date+'日'+week[w]+h+':'+m+':'+s;
setTimeout(showTime,500);
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:4812次
排名:千里之外
原创:18篇