Pages: 11/41 First page Previous page 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Next page Final page [ View by Articles | List ]
Jul 2
DigitalOcean
之前买了个便宜的VPS并且在上面搭建了我自己写的博客程序,后来VPS里运行MongoDB经常自己挂掉就索性没理了。直到现在VPS已经过期,服务器被强制关掉了。周末在家索性想着把这个博客程序重新搭建起来。

所以准备换一个VPS。选择Linode还是云主机(阿里云等等)?阿里云貌似有些贵,而且还有一堆备案的流程。Linode最近推出SSD服务,20刀/月的价格,加量不加价,很是吸引人。但无奈还是花的有些心疼。忽然另外一个VPS服务DigitalOcean(链接含refcode喔)被我无意发现。DigitalOcean是一家IaaS服务提供商,其特色就是提供快速的固态硬盘服务器,该公司宣称可在55秒之内搭建好一台云服务器,所有的服务器均拥有1G的网络接口,每月基础套餐为1TB,最低套餐费用仅为5美元/月。



每个月20刀的配置和Linode的20刀的配置几乎一样。但是DigitalOcean提供了最低5美元/月的配置,而且如果使用优惠码注册,还能免费送10美元。相当于免费使用2个月。于是我选择了5美元的配置,Google了一把优惠码,并且非常顺利的找到了能用的。Google搜索:digitalocean coupon。我是在这里找到: http://www.retailmenot.com/view/digitalocean.com

注册,填入优惠码,选择5$的主机类型,主机位置我选了旧金山(美国西部,据说比其他的稳定),操作系统选择了Ubuntu 14.04 x64。一切都非常顺利,正如他们的广告所说的,55秒内,一台热乎乎的VPS送到了我的手上。

有兴趣的同学可以用我的推荐链接注册哦,我也能得到一些好处。注册链接:DigitalOcean
用到哪天不想用了,DigitalOcean还提供了生成一个镜像(Image)的功能,然后你取消掉VPS服务器(Droplets),之后将不收取费用。哪天忽然又想用了再开通它,用之前的镜像一还原,马上就恢复了之前的环境,很是方便。

VPS安装必要的软件
sudo apt-get install git
sudo apt-get install python-pip
sudo apt-get install nginx
sudo apt-get install supervisor
sudo pip install tornado
sudo pip install pymongo
sudo pip install beautifulsoup4
(我安装了beautifulsoup是因为我做了个工具把博客园的博客导入过来。)
mongodb 安装:http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/

博客程序
之前我用python+tornado+pymongo写了一套博客程序,只是给我自己使用,所以我放在了私有仓库bitbucket上。
网站程序一般放在/var/www目录里。所以我用git clone把我的代码放到了/var/www/coderzh

sudo mkdir /var/www
cd /var/www
git clone https://xxxxx.xxxx.xxx
MongoDB
由于我的程序没有使用MongoDB默认的端口27017,所以我需要修改端口的设置。找到MongoDB的配置文件,修改port字段:

vim /etc/mongodb.conf
修改port=27017部分
停止和重启mongodb:

sudo service mongodb stop
sudo service mongodb start
运行博客程序
博客程序运行需要的环境已经基本配置好,这时运行博客程序看是否能正常起来:

sudo python /var/www/coderzh/main.py --port 8001
打开浏览器试试能不能访问: http://服务器IP:8001 OK,太棒了,一起正常。

Supervisor
停掉刚才的main.py,这时候要上一个好东西。它就是Supervisor,它是一个进程监控守护程序。它负责开机时自动启动你配置好的程序,并且在你的程序莫名其妙挂掉时,Supervisor会自动去重启他们。可以说,它是网站稳定运行的后勤保障啊。

新建一个Supervisor配置文件,放到/ect/supervisor/conf.d目录下,因为/etc/supervisor/supervisord.conf里配置了自动读取conf.d目录下的文件:

vim /ect/supervisor/conf.d/coderzh.conf
编辑coderzh.conf

[program:coderzh]
command=python /var/www/coderzh/main.py --port=8001
directory=/var/www/coderzh
autorestart=true
redirect_stderr=true
重载配置,重启Supervisior:

supervisorctl reload
supervisorctl start all
再次访问: http://服务器IP:8001 试试,嗯,一起正常。Supervisor工作了。

Nginx
接下来上Nginx,它是一个HTTP和反向代理服务器。最终网站的访问经过域名解析到服务器后,都要通过Nginx将访问请求转到main.py中处理。理解Nginx的配置文件很重要,好吧,说实话,我当初摸Nginx,Apache之类的东西时都是一头雾水的。Nginx的主要配置文件路径在:/etc/nginx/nginx.conf

为了让Nginx支持多域名,多Web服务。我修改/etc/nginx/nginx.conf 内容如下:

user www-data;
worker_processes 4;
pid /run/nginx.pid;
events {
    worker_connections 1024;
    use epoll;
}
http {
    types_hash_max_size 2048;
    server_names_hash_bucket_size 64;
    include /etc/nginx/mime.types;
    default_type application/octet-stream;
    access_log /var/log/nginx/access.log;
    keepalive_timeout 65;
    proxy_read_timeout 200;
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    gzip on;
    gzip_min_length 1000;
    gzip_proxied any;
    gzip_types text/plain application/x-javascript text/css application/xml;
    include /etc/nginx/conf.d/*;
}
注意最后一行:include /etc/nginx/conf.d/*,所以在conf.d目录里,可以为每个网站都配置一个.conf文件。我为博客程序生成的配置:vim /etc/nginx/conf.d/coderzh.conf

upstream coderzh {
    server 127.0.0.1:8001;
}
server {
    listen 80;
    server_name coderzh.com www.coderzh.com;
    location = /favicon.ico {
        rewrite (.*) /static/favicon.ico;
    }
    location = /robots.txt {
        rewrite (.*) /static/robots.txt;
    }
    location / {
        proxy_pass_header Server;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_pass http://coderzh;
    }
}
重新启动nginx

service nginx restart
这时已经可以用80端口访问了。

DnsPod
接下来就是通过DnsPod将域名解析到这台VPS服务器。应该不是什么问题,有问题可以查看DnsPod帮助。

部署完成
执行导入工具,将博客园的博客导入进来。访问:http://www.coderzh.com。HOHO,大功告成。

VPS注册链接:DigitalOcean
Jun 15
之前的node httpapi一直使用forever守护,但有时候forever也会莫名奇妙的挂掉,最近尝试使用python来做守护进程(暂定为littledog),通过查收pid,如果没有就启动,但是遇到个问题,在启动的时候直接运行
#node /Service/Api/app.js
显示正常
但是在littledog里执行这句命令的时候始终无法执行
最终找到解决方案
#/usr/local/node/bin/node /Service/Api/app.js
即讲node的地址写全
Apr 8
1、安装socket.io


2、创建服务端代码server.js


3、创建客户端代码 index.html


4、执行结果


5、更多资料参见官方网站 http://socket.io/#how-to-use

6、服务端向指定客户端发送消息

思路是客户端与服务端建立连接的时候,服务端保存客户端的信息,做一个socketMap, 在socketMap中取出需要发送消息的客户端,向该客户端发送消息

做一个模拟的简单例子,这里用的是数组:


Apr 8
首先安装nodejs mongodb


Feb 26
Nov 30

2014 十月底在巴黎举行的ng-europe大会上,Angular团队为与会者介绍了即将到来的AngularJS 2.0版本的细节。新版本对1.x版本进行了重大的颠覆,当前还没有任何迁移指南,此外它还是基于一个名为AtScript的新语言进行开发的。

对于熟悉Angular 1.X版本的开发者来说,他们将看到一个完全不同的框架,并且必须学习一种新的架构。在一堂关于版本2.0的变更的讲座中,Igor Minar 和 Tobias Bosch介绍了新的模板语法:

http://cdn3.infoqstatic.com/styles/i/green_border.jpg) -29px 0px repeat-y rgb(244, 244, 244);"><input type="text" [value]="firstName"><button (click)="addPerson()">Add</button>

这种新语法将数据绑定到元素的属性(property)上,而不是特性(attribute)上。这就允许你使用以下语法:

http://cdn3.infoqstatic.com/styles/i/green_border.jpg) -29px 0px repeat-y rgb(244, 244, 244);"><input type="checkbox" [checked]="someProperty">

看上去类似于标准的HTML,但这个复选框元素不会暴露出checked特性。新的模板引擎将数据绑定到元素的属性上,即使这些属性并非由DOM所暴露出的特性。

与新架构引起的其它剧变相比,新的模板语法只是一个相对较小的改动。与会者之一的Michael Bromley描述了一些新版本的一些破坏性改动,版本2.0取消了1.X中的以下概念

        
  • 控制器(Controller)
  •     
  • (Directive定义对象)
  •     
  • $scope
  •     
  • angular.module
  •     
  • jqLite
Nov 16

 http://blog.csdn.net/yanghua_kobe/article/details/17199417

 

 

项目简介

 

这是一个资产管理项目,主要的目的就是实现对资产的无纸化管理。通过为每个资产生成二维码,来联合移动终端完成对资产的审核等。这个项目既提供了Web端的管理界面也提供移动端(Andorid)的资产审核、派发等相关功能。
我们用Node.js构建该项目的Web端以及移动端的Serveice API。

项目主框架:Express 简介

 

 

Express 是一个非常流行的node.js的web框架。基于connect(node中间件框架)。提供了很多便于处理http请求等web开发相关的扩展。
Express简单的结构图:

 

Express的特性:

        
  • 基于Connect构建
  •     
  • 健壮的路由
  •     
  • 提供丰富的HTTP处理方法
  •     
  • 支持众多视图模板引擎(14+)
  •     
  • 内容协商
  •     
  • 专注于提供高性能
  •     
  • 环境基于配置
  •     
  • 快速构建可执行的应用程序
  •     
  • 高测试覆盖率

前端框架简介

Bootstrap

Bootstrap是Twitter推出的一个用于前端开发的开源工具包。它由Twitter的设计师MarkOtto和JacobThornton合作开发,是一个CSS/HTML框架。Bootstrap是简洁、直观、强悍的前端开发框架,让web开发更迅速、简单。
同时,很多基于Bootstrap的开源插件也让Bootstrap社区更加活跃。
最新的Bootstrap3提供了非常强的定制化特性。包括Less,jQuery插件等。
Bootstrap 为您提供了所有这些基本的模块- Grid、Typography、Tables、Forms、Buttons和Responsiveness。
此外,还有大量其他有用的前端组件,比如Dropdowns、Navigation、Modals、Typehead、Pagination、Carousal、Breadcrumb、Tab、Thumbnails、Headers等等。
有了这些,你可以搭建一个Web 项目,并让它运行地更快速更轻松。
此外,由于整个框架是基于模块的,你可以通过定制你自己的CSS来使得它满足你的特殊需求。
它是基于几种最佳实践,我们认为这是一个很好的开始学习现代Web 开发的时机,一旦你掌握了HTML 和JavaScript/jQuery 的基本知识,你就可以在Web 开发中运用这些知识。

Aug 31
  2011年,作为WEB行业中关注的焦点之一就是HTML5的发展。笔者也在很多站长网看多许多这方面的文章,但是笔者发现好像很少有能直接提出是否HTML5标准的WEB页面可以影响到站点的流量及真正的与优化有关系的文章。笔者将在即将结束的2011年发表关于一年来笔者对于HTML5的认识。首先我们先要知道新标准在WEB上有什么优点及缺点。

  HTML5的优缺点

  HTML5作为WEB标准的最新版本自认而然有许多显得改进。其中HTML5使WEB在用户的可用性和友好体验度上达到一定的提高;HTML5上有几个新的标签,这可以使开发人员可以更加开放方便的构建站点;可以更好的支持多媒体的元素,这包含视频和音频;可以很好的解决FLASH的局限性;在站点页面的抓取和索引方面,HTML5会更有优势;可以被大量的涌入移动应用程序APP及游戏的开发等等。

  当然HTML5也有一定的缺点,我们可以这么说:Html5可以使WEB更加的美好,但是这天还不是现在。由于HTML5还出去起步阶段,目前并不能很好的被浏览器所支持。目前主流的浏览器都趋向于支持HTML5,但是仍还存在许多的不兼容不支持。
Pages: 11/41 First page Previous page 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Next page Final page [ View by Articles | List ]