如何使用免费云服务器搭建自己的云服务

Posted by zhaoguoquan on July 18, 2014

本文适用于和我一样刚入门的学生党,希望搭建自己的服务器,但是苦于没有钱购买动辄每月半百的云服务

Update

Google Cloud 注册就送300刀!可以用1年。需要绑定信用卡。

概览

阿里云服务是业界比较良心的云服务,但是最便宜的服务每月也要50元,这不是一个普通的学生可以承受得起的。Linode也是名门贵族,价格不菲,但是,这些云服务都是一分价钱一分货,出了相应的钱,就能享受相应的服务。

但是我们学生可能根本不会知道自己的服务会被多少人使用,更多的是用云服务器练练手,玩一玩,除了土豪,估计不会有人购买类似的服务的。于是我苦苦寻觅,终于发现Amazon EC2提供长达一年的试用,相比而言,我的阿里云只上线了5天就被释放了……说多了都是泪……

注册 AWS | Amazon Elastic Compute Cloud (EC2) — 可扩展的云托管

  1. 登录http://aws.amazon.com/cn/ec2/
AWS 免费套餐包括为期一年,每月 750 小时 Linux 或者 Windows 微型实例的使用时间。要一直享受免费套餐,您只能使用 EC2 微型实例。
  1. 注册并新建一个EC2 instance 我选择的是Amazon自己的linux系统,使用了一段时间感觉还是不错的。
步骤就不一一列举了,其中有一个环节是绑定信用卡,并会“扣除”其中的1美元,但是这并不是真正的扣除,而是中国的银行系统把Amazon的测试扣款当成了真正扣款,这1$最终还是会返还的。 他的目的应该是便于日后便捷的购买Amazon的服务,倘若有一日我的云服务真能够服务几万人,我一定会购买的~~(>_<)~~
  1. 登录 这个会比较复杂,Amazon会给你生成一个密钥文件,想要连接这台服务器,你需要:

  2. Install an SSH client转到my-key-pair.pem密钥的文件夹下ssh -i my-key-pair.pem user_name@public_dns_name For Amazon Linux, the user name is ec2-user. For RHEL5, the user name is either root or ec2-user. For Ubuntu, the user name isubuntu. For Fedora, the user name is either fedora or ec2-user. For SUSE Linux, the user name is root. Otherwise, if ec2-user androot don’t work, check with your AMI provider.

配置环境

  1. Apache,nginx随便,想都装也行,直接装吧。PS:nginx官网说最好找源码直接下载,www.nginx.org,yum出来的 不是最新版本,可能会有问题,不过对于新手来说没啥区别。
<a id="028d"></a>yum install httpd
yum install mod_wsgi
yum install nginx
  1. 数据库
<a id="ca67"></a>yum install mysql
yun install mysql-server
yun install MySQL-python
  1. python ,pip,Django,php等 网上都有详细的教程,这里不一一列举,直接google就行 另外,我才发现一些很好的opendns资源,可以免去smarthost更新不及时造成的google服务挂掉,事实证明这个东西能够解决99%的“合法”XX需求。

nginx 须知

了解fastcgi

配置nginx的配置文件,在http中加入以下内容:

<a id="8af3"></a> server {
 listen 80;




<a id="7d0e"></a> server_name localhost;
 location / {
 fastcgi_pass 127.0.0.1:8000;
 fastcgi_param PATH_INFO $fastcgi_script_name;
 fastcgi_param REQUEST_METHOD $request_method;
 fastcgi_param QUERY_STRING $query_string;
 fastcgi_param CONTENT_TYPE $content_type;
 fastcgi_param CONTENT_LENGTH $content_length;
 fastcgi_param GATEWAY_INTERFACE CGI/1.1;
 fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
 fastcgi_param REMOTE_ADDR $remote_addr;
 fastcgi_param REMOTE_PORT $remote_port;
 fastcgi_param SERVER_ADDR $server_addr;
 fastcgi_param SERVER_PORT $server_port;
 fastcgi_param SERVER_NAME $server_name;
 fastcgi_pass_header Authorization;
 fastcgi_intercept_errors off;
 }




<a id="78c2"></a> error_page 404 /404.html;
 location = /404.html {
 root /usr/share/nginx/html;
 }







<a id="b260"></a> error_page 500 502 503 504 /50x.html;
 location = /50x.html {
 root /usr/share/nginx/html;
 }
}

这样就成功的监听了8000端口,如果是Django用户的话,直接 python manage.py runfcgi host=127.0.0.1 port=8000 就可以了

运行nginx

nginx -c conf路径

成功

去你的服务器IP访问一下,是不是成功运行了?哈哈

前几天去GoDaddy申请了www.zhaoguoquan.com 的域名,已经绑到我的服务器上了,但是鉴于安全因素我还是没弄80端口,等等再捣鼓这些东西吧……工作要紧……大神们闲着没事不要瞎扫描端口……就这样吧

三星的4K显示器太棒了

虽然多半个月工资没了,但是效果真是棒呢,不由自主来炫耀了