yjiang's cake

用dnspod给免费的TK动态解析及域名加速

昨日马大牛告知有免费的域名申请,于是申请了个yjiang.tk的域名.但是免费的午餐貌似没那么好吃,管理后台奇慢无比不说,域名访问也慢得让人无语.好歹挂上代理后能稍微快些了.本来是使用自己一直在用的花生壳来做解析的,谁知道一觉醒来,居然停了,于是换用其他的DDNS.

首先是申请免费TK域名,并转入dnspod来解析及管理,原有的域名速度太折磨人了.

先上dnspod申请个帐号,进入域名管理,添加一个自己的域名. dnspod_1

点击新添加的域名,记录会自动导入.生成记录值.

dnspod_1

根据上面的提示,到TK域名管理处domain panel并进入custom dns来自定义域名解析.并填入DNSpod提供的记录值.

dnspod_3

回到domain panel主界面,点Renew使修改生效.

最后记住进入注册DNSpod的邮箱,激活一下自己的DNSpod帐号,激活后才能使解析生效.

到此,免费域名转入解析就结束了,此时已经把TK域名转入dnspod来管理,按以往的域名管理方式添加记录就可以了,相信速度已经跟国内的cn等域名没有区别了.如果像我一样是在家自己搭建的WEB服务器,可以暂时不用添加记录,继续往下看先.


充分利用dnspod的ddns功能,在家搭建WEB站点

其实剩下的就比较简单了,首先要确定自己地区的网络运营商没有封80端口(如果封了80端口,那还是洗洗睡吧),其次如果家里有使用路由器的话,需要在路由器上做好端口映射.然后去dnspod下载一个动态解析的客户端,这里我选了python的动态解析脚本 for Linux.从GITHUB克隆或下载下来后,按照作者的说明配置一下放入后台执行就好了,脚本会自动给你的dnspod解析的域名添加记录. dnspod_4

然后赶紧测试一下自己的免费域名是否生效了吧~

上张家里的私人服务器--cubieboard的靓照~~

dnspod_5

nginx做的正向代理报502错误

因为公司服务器是联通线路,而公司内部用的是电信的线路,导致了访问公司网站跟测试服务器时的各种残.于是用nginx在VPS上搭建了一个http代理用来加速.

今天忽然任何网站都提示502 Bad Gateway,难道代理挂掉了?SSH连到vps上看了下,端口正常,nginx运行正常,重启服务依旧502.

于是关掉代理google一番....

oh,shit,我大股沟又被墙了,挂上SSH代理继续google.

VPS的代理当时是这么配的,当看到一文章中解说nginx配置http代理时, resolver 8.8.8.8 本地如果dns不相同可能会导致502错误. 转而想到google今天被墙,是不是因为这个导致8.8.8.8的DNS失效了?

赶紧把resolver改成V2EX 提供的NDS](http://dns.v2ex.com/),重启nginx再测试,果然问题解决了.

哎~奈何我大天朝这防火长城不定期抽风搞的谷歌半死不活,苦了我等屌丝啊.

记:VPS折腾笔记6 - varnish

以前很多东西都是管理员给弄好,自己只要埋头写代码就好了,效率之类的完全不去考虑.

当问起这个事儿,管理员说:最后在外层拿varnish包一层缓存就好了.

varnish?

缓存?

完全云里雾里.

近来闲的无聊,抽空把varnish大概了解了一遍, 原来就是前端的文件缓存工具.

这种东西,感觉一定要折腾一下才有继续深入的动力,且想到VPS上这个wordpress博客,居然扛不住50的并发,相当的窝火啊(马大牛说可能是插件原因).就拿你开刀了.

因为nginx已经占用了80端口,而且包老板的网站也都在上面,其中有个dz论坛,这东西好像并不适合做文件缓存,这样就不能整体把nginx端口改为非80端口.所以就有了下面这个方案:

varnish+nginx

我想应该有更好的解决办法,知道的话还请不吝赐教,谢谢!

开始实施

1.安装varnish的方法官方写的很详细,直接链接过来.

2.安装完后修改 /etc/varnish/default.vcl.

backend default {
    .host = "yjiang.tk";
    .port = "8080";
}
sub vcl_recv {
    if (!(req.url ~ "wp-(login|admin)")) {
        unset req.http.cookie;
    }
}
sub vcl_deliver {   #输出命中状态到http_header
    set resp.http.x-hits = obj.hits ;
    if (obj.hits > 0) {
        set resp.http.X-Cache = "hit cache";
    }
    else {
        set resp.http.X-Cache = "miss cache";
    }
}
sub vcl_fetch {
    set beresp.grace = 60m;
    if (!(req.url ~ "wp-(login|admin)")) {
        unset beresp.http.set-cookie;
    }
}

3.简单写个脚本来重启varnish以及修改到默认的端口.

#!/bin/sh

if [ -z $1 ]
then
    echo "defalut port 8080 used"
    port=8080
else
    port=$1
fi

pkill varnish

varnishd -f /etc/varnish/default.vcl \
         -s file,/tmp/varnish_cache.data,128M \
         -a 0.0.0.0:$port

netstat -ntlp | grep varnish

4.nginx虚拟主机文件修改,把原来的80端口改为8080,并新增个一个反向代理到80端口.

   server {
    listen  80;
    server_name yjiang.tk;            #绑定域名
    location / {
        proxy_pass http://127.0.0.1:88;
        include /etc/nginx/proxy_params;
    }
}

server {
    listen  8080;
    server_name yjiang.tk;            #绑定域名 
    root /var/www/cake;                     #网站根目录
    index index.htm index.html index.php;   #默认文件
    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        #fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;  #fastcig_params参数文件地址
    } 
    access_log  /var/log/nginx/access_cake.log;
    error_log  /var/log/nginx/error_cake.log;
}

5.执行重启varnish的脚本并重启nginx,OK.


测试一下效果

QQ图片20130606122509

webbench测一下,500并发量的情况下,CPU占用15.6%,感觉良好.

iftop_201430606

刷新下网站,依旧打不开,用 iftop 一看,带宽占满了.这个瓶颈就只能靠万能的RMB了...


问题

  • 当给nginx设置一个非80端口并访问此域名时,总会跳到IP默认站点.(已解决:如何设置nginx的IP默认站点

  • 如果nginx不设置一个默认站点,依旧会访问到一个虚拟主机,没搞明白哪里设置出问题了.

  • varnish配置文件还只有个后端,其他规则需要继续折腾.

坑爹的阿里云

那天吃饭,申大神说阿里云限制多,还有点不以为意。

周末瞎折腾,忽然折腾到域名这问题上来了,转而又想起那 http://582033.gicp.net 这个域名一直解析不成功,遂google一番.

发现阿里云论坛上都说他云主机只能绑定3个域名!赶紧联系客服确认!

QQ截图20130518184002

居然只能绑定5个主域名有木有!

虽然比只能绑定3个主域名要强些,虽然5个也够用了,但是,用VPS为了嘛来着?

你妹的阿里云,这么坑爹的事儿怎么不标注一下?!

  • 尼玛~果然还是申大神NB,早知道阿里云有这么个坑爹的限制.

nginx下wordpress上传文件提示无法移动

想上传张图片,结果报错了

QQ截图20130518185313

按照以往思路开始排查

  • 先修改图片格式及文件名,依旧上传失败.

难道是服务器设置问题?

  • 排查文件夹权限.

查看 wp-contents 下uploads权限, 755, 没有问题.

查看 /tmp 权限, 没问题.


  • 上次重启fastcgi,用户组参数没生效,但网站访问正常,所以也就没有在意.

    究其原因,是由于 php5-cgi 未使用 www-data 用户组来启动导致.

解决方法如下
killall php5-cgi

/usr/bin/spawn-fcgi -p 9000 -a 127.0.0.1 -C 4 -u www-data -g www-data -f /usr/bin/php5-cgi

上传成功,问题解决.

一直用源安装环境,很少在意用户组问题,看来手动编译还是有必要的.

Copyright © 2016 yjiang's cake

返回顶部