HTTPS 小白知识(一)

10月发生的 Apple 在iOS 可信根证书列表中屏蔽其对中级CA WoSign(沃通) CA Free SSL Certificate G2 的信任 让许多普通人第一次接触到了 HTTPS 这个已经陪伴了我们很久的技术。作为程序员,我们应该更多地了解 HTTPS 的相关知识。

HTTPS 到了应该全面普及的时候了。 继续阅读HTTPS 小白知识(一)

将 nginx 注册为系统服务

nginx 提供了 -s signal 命令行参数让我们对其进行操作。我们可以很方便地利用 -p prefix 参数指定启动路径来启动多个完全隔离的 master 进程;还可以使用 -c filename 显式指定不同的配置文件。

由于 prefix 的路径一般都比较长, reload 或者 reopen nginx master 进程就会比较不方便。此时可以采用我在 在 OS X 中使用 OpenResty – 3.快捷方式 中提到的自建快捷方式的形式来简化这些操作。

更一般的,在服务器上我们会采用操作系统提供的标准服务的方式来进行这些简化。当然,这种方法一般仅针对一个 nginx master 进程进行操作。

本文将介绍在多个操作系统上将 nginx 注册为服务的方式(其实,也没有那么多啦)。

1. Mac OS X

参照 在 OS X 中使用 OpenResty – 2. 配置 OpenResty 环境 进行配置即可。

2. CentOS

根据 CentOS Nginx的一个初始化脚本(用于启动、停止、查看状态) 一文提供的方法,我整理了代码到 gist 上,只需要将 nginxd 下载到 /etc/init.d 并执行 addnginxservice 脚本即可。

下面的代码自动帮你做了上面的事:

wget --no-check-certificate https://gist.githubusercontent.com/zrong/9c7dfce8f274ee451188/raw/77eada5f92dd5583838390f26cc9790b00e63137/nginxd
wget --no-check-certificate https://gist.githubusercontent.com/zrong/9c7dfce8f274ee451188/raw/a0084d1ae6d5175c913e4593c99d493487d14c75/addnginxservice && source addnginxservice

3. Ubuntu

已经都是 Ubuntu了,自然是直接 apt-get 啦。这个没什么好说的。

4. Windows

nginx 的 Windows 二进制包并没有提供注册成为服务的功能。官方提供的方法和 Linux 相同,都是使用命令行参数进行操作。例如下面的 来自官方wiki 的方法,进入 nginx 文件夹,启动nginx进程:

cd nginx/
start nginx.exe

使用下面的命令查看 nginx 进程是否正在运行:

tasklist /fi "imagename eq nginx.exe"

关闭 nginx 进程:

nginx.exe -s quit

nginx 并不是为 windows 开发的,windows 版本的作用是为了方便在 windows 上工作的程序员们使用 nginx 。因此,nginx 好像并没有什么需要成为一个服务的动力。尽管 Running as a service. 出现在了 Possible future enhancements 列表中。

如果一定要在 windows 下将其注册为服务的话,把 Nginx 创建为 Windows 的一个服务原文)一文提供了一种方式。这是一篇写于 2009 年的文章,我并没有在我的 Windows 8.1 上尝试,因为我直接使用 Vagrang 了。

(全文完)

在 OS X 中使用 OpenResty

我曾经写过 在 Mac OS X 上安装lighttpd ,从那时起,我的 Mac 上的 HTTP 服务器一直是 lighttpd。

现在,为了学习 OpenResty ,我将 lighttpd 进行了替换。下面记录这个过程。

1. 移除 lighttpd

在 Mac OS X 上安装lighttpd 的时候,我使用 launchctl 来实现 lighttpd 的自动启动。现在,只需要 unload 即可。

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.lighttpd.plist

这会立即停止 lighttpd 的运行。接下来,将 homebrew.mxcl.lighttpd.plist 从~/Library/LanuchAgents 目录中移除。否则下次启动系统的时候,lighttpd 又会启动。

继续阅读在 OS X 中使用 OpenResty

在 Mac OS X 上安装lighttpd

在 Mac OS X 上安装lighttpd

Install lighttpd in Mac OS X

2014-10-22更新: 加入更新到 Yosemite 后出现错误的解决方法。

在Windows上,我使用的是XAMPP套件。

Mac上我还没有安装HTTP服务器。我的VPS上使用的是lighttpd(从Apache到Lighttpd),因此在工作电脑上也希望使用它。

安装

-> % brew search lighttpd
lighttpd
-> % brew install lighttpd

安装过程中,有几个重点需要提醒: 继续阅读在 Mac OS X 上安装lighttpd

iOS 7.1在线安装IPA失败以及数字证书

2014-06-20更新:增加对七牛云存储的HTTPS服务说明和又拍云的介绍。

iOS 7.1在线安装IPA失败以及数字证书

Enterprise app deployment doesn’t work on iOS 7.1 and CA

错误现象

在 iOS 升级到 7.1 之后,使用 Safari 在线安装企业版或者 AD-HOC 版本的IPA时,iOS会提示:

无法安装应用程序,因为“xx.xx.xx” 的证书无效。

这是一个蛋疼的提示,它的真正人类能懂的含义是:

在 iOS 7.1 版本以后,请使用 HTTPS 部署此类安装。

解决方案

1. 部署自己的HTTPS服务器

这种方案需要使用一个可信的证书颁发机构办法的证书,将其部署在自己的服务器上。配置自己的服务器软件(例如 Apache、Nginx等) 使其支持它。

这是一劳永逸的解决方案,如果需要大量部署,那么此种方案是首选。

注意,自己给自己颁发的证书是不行的。必须使用可信的证书颁发机构颁发的证书。这就意味着,你很可能需要付费。

后面会讲到数字证书的部分,会稍稍展开一点。 继续阅读iOS 7.1在线安装IPA失败以及数字证书

在Ubuntu 12.04 LTS上编译Lighttpd

Ubuntu 12.01 LTS 的源自带的Lighttpd版本稍旧,因此我还是准备自己编译一个最新的1.4.33版。

具体的编译方法可以参考这里 。

编译中遇到2个问题:

1.找不到 pcre-devel 包

这个包在ubuntu的源中名称为 libpcre3-dev

2.找不到 bzip2-headers

在ubuntu的源中,安装这个包: libbz2-dev

参考:

【转】HTTP POST GET 本质区别详解

【转】HTTP POST GET 本质区别详解

原文地址:http://blog.csdn.net/gideal_wang/article/details/4316691
原文作者:gideal_wang

感谢原文作者写出这篇通俗易懂的文章。转载过程中,对格式和部分用语做了修改。


一 原理区别

一般在浏览器中输入网址访问资源都是通过GET方式;在FORM提交中,可以通过Method指定提交方式为GET或者POST,默认为GET提交。

Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。

URL全称是资源描述符,我们可以这样认 为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查 ,改 ,增 ,删 4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询 资源信息,而POST一般用于更新 资源信息(个人认为这是GET和POST的本质区别,也是协议设计者的本意,其它区别都是具体表现形式的差异 )。

根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的 。 继续阅读【转】HTTP POST GET 本质区别详解

使用Cygwin在Windows中以服务方式安装Lighttpd

使用Cygwin在Windows中以服务方式安装Lighttpd

缘起

自从前段时间对服务器进行了从Apache到Lighttp 的转换之后,服务器运行异常的稳定。Lighttpd占用内存非常小,配置文件也很简单,这让我萌生了把所有服务器都从 Apache 转到 Lighttpd 的想法。

但这毕竟是个浩大的工程,而且运行正稳定的服务器也不必这么折腾。于是先从我的本机开刀。

我的每台工作电脑都会安装 XAMPP 套件,主要是用于开发和共享,以及存放一些html格式的文档以方便浏览。

而现在XAMPP可以退休了。

系统需求

Lighttpd并没有官方的Windows版本,本文基于Cygwin 来安装 Lighttpd。

本文假设你了解Cygwin的基本用法和配置,了解如何使用Cygwin的setup来安装新的包。

如果你不喜欢setup.exe那个界面,可以试试 apt-cyg

安装cygserver

cygserver 是为Cygwin作为后台服务运行而设计的,默认安装Cygwin的时候并没有启动它。我们需要打开它,并将它作为Windows的标准服务来安装。 继续阅读使用Cygwin在Windows中以服务方式安装Lighttpd

从Apache到Lighttpd

从Apache到Lighttpd

购买了阿里云服务器之后,由于内存过小,MySQL经常挂掉挂载了虚拟内存之后,MySQL倒是不挂了,但Apache总是占用过多内存,导致磁盘频繁读取(阿里云服务器的磁盘性能就那就一个弱啊),服务器响应缓慢,甚至远程登录都无法完成,只能通过网页控制台重启服务器。

Google了一堆优化512MB内存服务器的资料,设置后都没什么用处,服务器依然是每天挂2~3次。

别以为我的服务器访问量有多么的大,整个服务器上只放了一个博客程序,IP访问量每天几百次。当然,这个博客程序就是臭名昭著的各大主机商都痛恨的WordPress。

今天下决心把Apache换成Lighttpd,希望能解决内存不够的老大难问题。

以下是从Apache到Lighttpd转换过程中遇到的几个新手小白问题。这不是教程,只是解决方案,因此略去了安装等基本过程。 继续阅读从Apache到Lighttpd

AIR的URLLoader不支持对静态文件使用POST方法获取

在AIR中对静态文件使用POST方法获取内容的时候,会出现一个IOError错误:

[IOErrorEvent type=”ioError” bubbles=false cancelable=false
eventPhase=2 text=”Error #2032: Stream Error. URL:
http://demo.zengrong.net/freeroom/index.html” errorID=2032]

注意,只有对 真正的纯静态文件 才会发生这样的错误,而对于使用URL重写方式虚拟出来的静态文件,则不会报错。(本文地址就是用UrlRewrite重写出来的,不信的可以试试 2013-01-24 本博客已经改为静态化地址了,请另找地方测试)

  • 对于以 file:/// 开头的本地文件,不会报错。
  • 在非AIR环境下,也完全正常,不会报错。

究其原因,可能是由于AIR对HTTP协议的方法实现得更加标准。因为AIR不仅支持POST和GET方法,还支持PUT和DELETE方法。 不了解PUT、DELETE、GET、POST的看这里

看下面的代码: 继续阅读AIR的URLLoader不支持对静态文件使用POST方法获取