月度归档:2013年09月

SSL with node.js, express and socket.io

Using HTTPS with express is almost as simple as replacing require(‘http’) with require(‘https’). For my application I am using a self-signed certificate that I created after following the directions on Nate Good’s blog. I placed the certs in a folder called cert.

I initialized the variables in preparation for two servers following this Stackoverflow question. One server for https listening on 443 and another for http listening on port 80. Then I wrote the http server to forward all requests to the https server. So that node doesn’t run as root I edited the iptables to map port 80 to 8081 and port 443 to 8080.

The following code forwards all requests for HTTP to HTTPS.

 

Then on the client side I had to setup socket.io to use the secured port as well.

 

The process was first to obtain or create an SSL Certificate. Then create an express server that requires ‘HTTPS’. Finally, setup the client JavaScript to reply on the HTTPS secure port.
EDIT 7/24/13: Also check out the documentation for HTTPS http://nodejs.org/api/https.html.

 

转自:http://chrislarson.me/blog/ssl-nodejs-express-and-socketio

关于SSL证书生成,请参考:http://blog.tangjianwei.com/2009/01/13/how-to-create-ssl-certificate-for-your-own-website/

https://konklone.com/post/switch-to-https-now-for-free

Node.js+express服务器域名无法访问

前些天在阿里云买了个主机,搭建了node.js环境,然后在dnspod上把以前的一个国外域名指向该主机IP。ping可以正常解析出IP。然后奇怪的事儿来了:

1.本地用域名远程桌面登陆正常,但是本地浏览器无法通过域名打开express上的网页只能通过IP访问。

2.用云主机本身的浏览器以及另外一台阿里云的主机都可以通过域名正常打开网页。

然后各种查代码,未果。

然后用ngigx做了代理,还是不行。

然后用IIS测试,依旧是IP可以访问,域名不行。

最后的最后,发现应该是备案的问题,主机可以收到request,但是浏览器收不到response。猜测阿里在出口上掐掉了吧。

阿里云Ubuntu挂载数据盘

适用系统:Linux(Redhat , CentOS,Debian,Ubuntu)

*  Linux的云服务器数据盘未做分区和格式化,可以根据以下步骤进行分区以及格式化操作。

* 命令建议手动输入,复制粘帖可能会有问题。或者先复制到文本文件。

下面的操作将会把数据盘划分为一个分区来使用。

1、查看数据盘
在没有分区和格式化数据盘之前,使用 “df –h”命令,是无法看到数据盘的,可以使用“fdisk -l”命令查看。如下图:

友情提示:若您执行fdisk -l命令,发现没有 /dev/xvdb 标明您的云服务无数据盘,那么您无需进行挂载,此时该教程对您不适用

 

2、 对数据盘进行分区

执行“fdisk -S 56 /dev/xvdb”命令,对数据盘进行分区;
根据提示,依次输入“n”,“p”“1”,两次回车,“wq”,分区就开始了,很快就会完成。

 

3、 查看新的分区

使用“fdisk -l”命令可以看到,新的分区xvdb1已经建立完成了。

 

4、格式化新分区

使用“mkfs.ext3 /dev/xvdb1”命令对新分区进行格式化,格式化的时间根据硬盘大小有所不同。
(也可自主决定选用 ext4 格式)

 

 

5、添加分区信息

使用“echo ‘/dev/xvdb1  /mnt ext3    defaults    0  0′ >> /etc/fstab”(不含引号)命令写入新分区信息。

然后使用“cat /etc/fstab”命令查看,出现以下信息就表示写入成功。

*  如果需要把数据盘单独挂载到某个文件夹,比如单独用来存放网页,可以修改以上命令中的/mnt部分

6、挂载新分区
使用“mount -a”命令挂载新分区,然后用“df -h”命令查看,出现以下信息就说明挂载成功,可以开始使用新的分区了。

来源:http://help.aliyun.com/manual?helpId=271

windows 2003下node.js生产环境部署

 

 

 

 

adb server is out of date. killing…

5037端口被占用导致adb server无法启动。

找到占用的5037端口的进程tabd.exe然后结束即可。

tadb.pid

所谓tadb.exe就腾讯改的adb,用来连接手机。当然你也可能是被别的什么手机管理软件给占据了。

针对tadb.exe,在 QQ—设置—提醒—安卓设备连接提醒 里 对勾去掉即可,下次就不会自动启动。

tadb.exe

 

 

PhoneGap3.0入门教程

环境:

WIN7,JDK,Android,Eclipse,Ant,Git,PhoneGap3.0

1.下载Android SDK,JDK,ANT

安装后添加路径到环境变量。

To modify the PATH environment on Windows 7

    • 开始-计算机 右键 属性-高级系统设置;
    • 高级-环境变量;
    • 选择 PATH 点击 编辑;
    • 将Android SDK路径添加到末尾(注意分号间隔),例如:

  • 点击确定保存。

同样添加JDK和ANT的路径,先新建JAVA_HOME变量和ANT_HOME变量,然后在PATH中添加:

path

2.安装node.js

PhoneGap3.0开始采用npm管理。故需要安装NODE.JS

3.安装git

我用的是github的client,同样添加路径到PATH,在CMD中直接输入git能运行即可。方便用来管理PhoneGap插件。

4.确认环境

下面这些个命令只要不出现 “’XXX’ 不是内部或外部命令,也不是可运行的程序或批处理文件”,应该就完事儿了。

java -version   ant -version    adb version    npm –version     git –version

——————————-好了烦人的屁话终于说完了———————————————–

安装PhoneGap

// -g 表示全局,就随便哪里都能用phongap命令,  NPM相关科普参考官方文档

新建项目

注意找个好路径,千万不要在C:Program Filesnodejs这种路径下搞,那个空格会搞死你。

如果出问题了,用-V输出调试信息,例如 phonegap build android -V

当然你可以用你喜爱的Eclipse来编译安装,详细看这里

新建项目,选择从已经存在的代码导入,路径:hello2platformsandroid

添加插件

先科普一下:PhoneGap3.0采用新的插件架构。该架构可以让你的应用更小、更快,你只需要包含需要的API即可,插件会自动安装和删除。说白了就是把2.x中的APIs拆分成了跟自定义插件一样的东西,需要用的什么就加入相应的插件即可。这样你的APK体积大大减小了。官方图解:

cordova_plugin_diagram

 

下面以添加cordova-plugin-contacts为例。具体点击下面那个参考地址看吧,懒得翻译了,就复制下代码而已。

参考地址

添加成功运行后,在你的”联系人”里会出现一个Test User

注意到”联系人”里看不要在拨号界面的通讯录里查看。

DEDECMS引入外部模版文件出现””字符导致异常空行问题

问题描述

index.htm模版中采用{dede:include filename=’head.htm’/}插入其他模板文件,就出现空行,审查元素发现有两个双引号字符,而查看页面源代码没有任何异常,如图。另外,将head.htm中的代码直接复制到index.htm中就没有问题。

bom_bug

 

问题原因

百思不得其解,突然记起曾手贱用带BOM的格式保存了head.htm文件。(原本是GBK的文件,转了下码)

解决办法

用nodepad之类的编辑器转为无BOM格式保存即可。

bom_save

 

科普时间

UTF-8 编码的文件可以分为no BOM 和 BOM两种格式。

何谓BOM?

字节顺序标记英语:byte-order mark,BOM)是位于码点U+FEFF统一码字符的名称。当以UTF-16UTF-32来将UCS/统一码字符所组成的字符串编码时,这个字符被用来标示其字节序。它常被用来当做标示文件是以UTF-8UTF-16UTF-32编码的记号。

因为 Web 服务器软件可能不认识 BOM,所以就把 BOM 的两个特殊字节当做字符发送给浏览器了。

另外微软的记事本,Word 等只能正确打开含BOM的UTF8文件。