April 14, 2011

转战亚马逊EC2

EC2 Nginx PHP FastCGI MySQL WordPress

关于 Amazon EC2 的教程已经铺天盖地了,有英文也有中文。现在EC2对新注册的用户有优惠,及Micro Instance级别的会有1年的免费份额。注意只是对新注册用户,如果你已经注册了 AWS 账户,即使并没有开通任何服务也不属于新注册用户,意思就是只要你使用就没有免费的。这一点我是用了$2美金的账单换来的教训。网上也有其他同学遇到,看来不仔细阅读文档就是没文化的代表。这里是账单查询地址https://aws-portal.amazon.com/gp/aws/developer/account/index.html?ie=UTF8&action=activity-summary 一旦发现产生莫名其妙的费用,赶紧查。

我这次使用 Amazon EC2 的目的是把即将到期的博客迁移到这里,并且让手中的一些闲置域名也利用起来。其中还有一个更重要的目的就是为部署一个很重要的网站,基于Django的。

首先要做的是迁移博客。 进入 EC2 后需要安装一些软件,因为Micro Instance只能使用Amazon Linux(redhat系),所以包管理器使用的是yum。

sudo yum install mysql mysql-libs mysql-server php php-mysql spawn-fcgi nginx

启动MySQL后,并更改root用户的密码

sudo service mysqld start
/usr/bin/mysqladmin -u root -p -h localhost password 'newpassword'

配置 Nginx, 在这里我遇到了一些问题,折腾了一天才搞定。这里要十分的感谢网友 hfw_1984 的帮助。遇到的问题主要集中在fastcgi部分,如果要让Nginx支持我博客的URL格式如http://www.tairan.net/index.php/2011/03/30/follow-the-right-way/ 则必须参照以下配置:

    location ~ ^.+\.php {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;  # 这一行必须放在 SCRIPT_FILENAME 上面,否则会被覆盖。
        fastcgi_param   SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        #fastcgi_param   PATH_INFO   $fastcgi_path_info; # 这两行并不需要
        #fastcgi_param   PATH_TRANSLATED $document_root$fastcgi_path_info;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
    }

Micro Instance 默认提供的Nginx Version: 0.8.53

以上就是这两天的战果,还有其他的一些东西已经被写成自动化脚本,为方便备份数据,再次迁移、部署提供方便。

总的来说在墙内,使用EC2也不错,性价比不是最好,但是绝对值得试用。:-)

comments powered by Disqus

© Copyright 2019 Tairan Wang