MacTalk·人生元编程-池建强-微信读书

趣谈个人建站

常用的shell有这么几种:sh、bash、csh、zsh等。 ◆wget。命令行下载工具,安装时输入sudo apt-get install wget,使用方式后面会介绍。 ◆tmux。一个优秀的终端复用软件,类似GNU Screen,但来自于OpenBSD,采用BSD授权。使用它最直观的好处就是,通过一个终端登录远程主机并运行tmux后,在其中可以开启多个控制台,而无需再“浪费”多余的终端来连接这台远程主机。好吧,这句话有点绕,简单说就是用tmux打开的会话可以一直驻留在服务器上,下次去看时还是上次来的样子。就像你是某个酒店的VIP客户,住完之后不会人走茶凉,也不会断电,下次去时茶还热着,灯也亮着,就这样。 安装方式sudo apt-get install tmux,对使用方式感兴趣的读者去查一下吧,中文介绍很多,记住,热键是ctrl+b。 ◆Vim。在Linux上少不了要编辑文件,我推荐Vim和Emacs,一个是编辑器之神,一个是神的编辑器(或者是伪装成操作系统的编辑器),我是“Vim党”,目前在学习Emacs。本书中有一个Vim系列,有兴趣的可以去看,从原理到配置、使用都有非常详细的介绍。 Nginx是一款高性能的HTTP服务器软件,由俄罗斯的一位大牛Igor Sysoev开发的,源代码以类BSD许可证的形式发布。Nginx的设计非常轻量级,由内核和模块组成,内核微小简洁,模块功能强大,静态编译。Nginx做的事情简单来说就是:接收客户端(浏览器)的HTTP请求,然后通过映射机制把不同类型的请求交给不同的模块去处理,比如HTML、图片、CSS等可以交给静态资源模块处理,还可以做压缩、缓存等,PHP、Python等类型的请求则交给FastCGI模块去处理,完成业务逻辑。 什么是FastCGI呢?这玩意就等于是HTTP服务器和动态脚本语言通信的接口,就像一个粘合剂一样把HTTP请求和动态脚本处理整合在一起,顾名思义,处理速度非常Fast! 当然,在Nginx未涉足江湖之前,这个领域的大哥叫做Apache,那时候几乎所有的HTTP Server都是清一色的Apache,一时之间风头无量。 Nginx的所有模块都是全静态编译的,启动Nginx后,Nginx的模块被自动加载,静态库执行效率更高。 Nginx支持epoll(Linux系列)和kqueue(BSD系列)的I/O事件通知机制。完了,又出现两个名词!这让人情何以堪、文何以完啊?简单说说epoll吧。epoll是Linux2.6正式引入的提高网络I/O的处理方法,它的几个优点是:单一进程打开的FD(文件描述符)数量仅受限于操作系统,1GB内存的机器上大约是10万左右,这一点大大提升了处理海量请求的能力;采用共享内存的模式避免内存拷贝;随着打开FD的数量增加,I/O效率不会线性下降。总之,大家知道epoll很牛就是了。 Nginx支持多进程的工作方式,启动后会有一个master进程,多个worker进程。worker进程一般对应服务器的CPU数量,你有个8核的CPU,最好把worker设置为8。master负责接收外界信号,并向worker发送信号,监控worker的运行状况,当worker挂掉的时候,启动新的worker。 尤其是Nginx的不中断重启机制,当系统配置变化需要重新启动Nginx时,我们就给地主(master)发个消息,说这批长工(worker)太老了,都得换掉,你看着办。地主收到消息后就开始偷偷雇佣新的长工(worker),然后假惺惺地告诉老长工,把手头的活干完就行了,别太累了,啊。这时候如果有新的请求,就会交给新长工干,等所有的老长工把活都干完了,就直接fire,绝不留情。

#安装 
sudo apt-get install nginx
#启动 
sudo service nginx start