Home > 电脑网络|network > 定时备份与nginx反向代理–vps应用(一)

定时备份与nginx反向代理–vps应用(一)

最近原先的虚拟主机出现问题, 于是索性完全转到vps空间. wordpress和dokuwiki的搬家基本很顺利, 主要平时注意了备份问题, 不过还是少了一篇日志和2个评论, 等到恢复再补上. 由于图片都是外链, 所以搬家很方便,sql数据很小, 主要的问题是原先设的一些应用没有备份, 比如twitter api和dabr之类的应急应用.

设置好了域名绑定后, 主要就是设置备份, 现在molezz.net主要的就是一个wordpress blog和dokuwiki知识整理. 前者的备份用了WordPress Database Backup进行每周备份, 而dokuwiki没有这样的定期插件, 而且不是基于mysql的, 是使用txt进行记录, 不能用上面那个插件备份, 于是想到了linux下的脚本和crond进行备份. 另外由于用了nginx而不是apache, 可以直接利用nginx的reverse proxy设置twitter的api, 而不用twip之类的第三方~

(I) 定期自动备份文件夹

由于dokuwiki的记录都是保存于data/pages目录下, 所以我只要备份这个里面的数据即可, 首先是压缩这个文件夹为单个文件, 然后将其email到我的gmail邮箱备份即可. 以当日日期为文件名压缩得到tar.gz文件, 利用uuencode编成附件, 然后利用mail程序发送到邮箱. 最后删除vps上生成的临时tar.gz文件. 脚本文件如下:

1
2
3
4
5
6
#!/bin/bash
# backup dokuwiki pages program
 
tar czfP `date +"%Y%m%d"`_wikipages.tar.gz wiki/data/pages/
uuencode `date +"%Y%m%d"`_wikipages.tar.gz `date +"%Y%m%d"`_wikipages.tar.gz | mail -s "molezz wiki backup" molezz+backup@gmail.com
rm *wikipages.tar.gz

写好脚本后要进行每周的执行, 用命令crontab -e进行设置(注意文件夹路径)

25 20 * * 3 /home/molezz/html/wikibackup.sh

表示每周三20:25进行备份, 如果要每月或每天的话也可以进行相应更改, 前5个位置分别为<分,时,日,月,周>, 具体可以参考鸟哥的私房菜这章

(II) 利用nginx反向代理设置api

解决了备份问题, 接下去就是我的twitter api问题, 原先使用的twip架设的api使我的手机ubertwitter能看推. 而用了nginx后发现twip工作不正常, 原来是rewrite的问题, 上google code一看… 原来nginx可以设置reverse proxy, 于是只要将我的一个域名设置反向代理到api.twitter.com即可

设置域名解析, 如www.aaa.com(只是例子, 不存在), 打开nginx.conf文件, 添加

77
78
79
80
81
82
83
84
85
86
87
88
 server {
        listen       80;
        server_name  www.aaa.com;
 
        location / {
            proxy_pass http://api.twitter.com/;
            proxy_redirect off;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For
            $proxy_add_x_forwarded_for;
        }
    }

重启nginx服务后, 只要在api的地址填写www.aaa.com即可访问twitter的api了, 另外这个也可以用于其他代理, 而且还能隐藏真实的原网址.

vps虽然贵, 但是物有所值, 很多自定义服务都能实现.

Popularity: 100%

  1. June 30th, 2010 at 07:18 | #1

    在家搞了台服务器,还是不放心vps, 直接下载到自己家的电脑备份

  2. June 30th, 2010 at 07:35 | #2

    @ppg 恩, 我在宿舍也弄了一个, 不过因为不一定24小时, 所以还是把主要数据定期email到gmail里备份

  1. No trackbacks yet.
注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。