Nginx教程(一) Nginx入门教程

Nginx教程(一) Nginx入门教程html

 

 

1 Nginx入门教程

Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like协议下发行。由俄罗斯的程序设计师IgorSysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特色是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。linux

 

Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。其将源代码以类 BSD 许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。
nginx

 

它已经在众多流量很大的俄罗斯网站上使用了很长时间,这些网站包括 Yandex、Mail.Ru、 VKontakte,以及 Rambler。据 Netcraft 统计,在 2012 年 8 月份,世界上最繁忙的网站中有 11.48%使用 Nginx 做为其服务器或者代理服务器。目前互联网主流公司360、百度、新浪、腾讯、阿里等,目前中国互联网企业 70%以上公司都在使用 nginx 做为本身的 web 服务器。Nginx 特色是占有内存少,并发能力强,事实上 nginx 的并发能力确实在同类型的网页服务器中表现较好。Nginx 由内核和模块组成,其中,内核的设计很是微小和简洁,完成的工做也很是简单,仅仅经过配置文件将客户端请求映射到一个 location block(location 是 Nginx配置中的一个指令,用于 URL 匹配),而在这个 location 中所配置的每一个指令将会启动不一样的模块去完成相应的工做。c++


Nginx 相对于 Apache 优势:
1) 高并发响应性能很是好,官方 Nginx 处理静态文件并发 5w/s
2) 反向代理性能很是强。(可用于负载均衡)
3) 内存和 cpu 占用率低。(为 Apache 的 1/5-1/10)
4) 对后端服务有健康检查功能。
5) 支持 PHP cgi 方式和 fastcgi 方式。
6) 配置代码简洁且容易上手。
web

 

2. Nginx 工做原理及安装配置
Nginx 由内核和模块组成,其中,内核的设计很是微小和简洁,完成的工做也很是简单,仅仅经过查找配置文件将客户端请求映射到一个 location block(location 是 Nginx配置中的一个指令,用于 URL 匹配),而在这个 location 中所配置的每一个指令将会启动不一样的模块去完成相应的工做。
Nginx 的模块从结构上分为
shell

核心模块、基础模块和第三方模块:
后端

 

核心模块:HTTP 模块、 EVENT 模块和 MAIL 模块
基础模块: HTTP Access 模块、HTTP FastCGI 模块、HTTP Proxy 模块和 HTTP Rewrite模块,
第三方模块:HTTP Upstream Request Hash 模块、 Notice 模块和 HTTP Access Key模块。
浏览器


Nginx 的高并发得益于其采用了 epoll 模型,与传统的服务器程序架构不一样,epoll 是linux 内核 2.6 之后才出现的。 Nginx 采用 epoll 模型,异步非阻塞,而 Apache 采用的是select 模型
服务器

 

Select 特色:select 选择句柄的时候,是遍历全部句柄,也就是说句柄有事件响应时,
select 须要遍历全部句柄才能获取到哪些句柄有事件通知,所以效率是很是低。
架构


epoll 的特色:epoll 对于句柄事件的选择不是遍历的,是事件响应的,就是句柄上事
件来就立刻选择出来,不须要遍历整个句柄链表,所以效率很是高

1.1 Nginx下载安装

一、Nginx下载:nginx-1.13.0.tar.gz,下载到:/usr/local/software/

wget http://nginx.org/download/nginx-1.13.0.tar.gz

 

二、Nginx解压安装:

 tar -zxvf nginx-1.13.0.tar.gz -C ./

 三、Nginx编译

./configure

报错

  1. 解决./configure: error: C compiler cc is not found错误:

错误缘由:缺乏编译环境,安装编译源码所须要的工具和库:

执行命令:yum install gcc gcc-c++ ncurses-devel perl 


     再次编译:./configure --prefix=/usr/local/nginx

 

  1. 解决./configure: error: the HTTP rewrite module requires the PCRElibrary.错误:

错误缘由:缺乏HTTP rewrite module模块,禁用或者安装所须要的模块。咱们选择安装模块:

      执行命令:yum install pcre pcre-devel

 

  1. 解决./configure: error: the HTTP gzip module requires the zliblibrary.错误:

  错误缘由:缺乏HTTP zlib类库,咱们选择安装模块:

  执行命令:

  yuminstall zlib gzip zlib-devel

 

4.编译成功

 

 5.安装Nginx:

安装命令:make & make install

 

 

 

1.2 Nginx启动

一、查看安装目录:cd

conf 存放配置文件

html 网页文件

logs 存放日志

sbin   shell启动、中止等脚本

 

 

 

 二、启动nginx

 

查看进程

 

常见问题:

 

解决nginx:[emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)错误:

错误缘由:不能绑定80端口,80端口已经被占用。

 

 

三、中止nginx,从新加载配置文件

执行命令:kill –INT进程号

启动成功:

 

 从新读取配置文件:

nginx-s reload

 

四、Nginx信号控制

 

TERM, INT

快速中止(杀死进程)

QUIT

优雅的关闭进程,即等请求结束后再关闭

HUP

改变配置文件,平滑的重读配置文件

USR1

重读日志,在日志按月/日分割时有用

USR2

平滑的升级

WINCH

优雅关闭旧的进程(配合USR2进行升级)

 

5.打开浏览器

 

 


 

1.3经常使用命令

 进去nginx的安装目录

进去sbin

经常使用命令

启动
./nginx 

检查 nginx.conf配置文件
./nginx -t

重启
./nginx -s reload

中止

./nginx -s stop

 

 

 

 


 

1.4 学习Nginx推荐书籍:

1. 《深刻剖析Nginx》

2. 《实战Nginx:取代Apache的高性能Web服务器》

3. 《深刻理解Nginx:模块开发与架构解析》

4. 《深刻理解Nginx:模块开发与架构解析》

5. 《决战Nginx技术卷:高性能Web服务器部署与运维》

6. 《决战Nginx系统卷:高性能Web服务器详解与运维》

 

 from:http://blog.csdn.net/yuan_xw/article/details/51181282#comments

相关文章
相关标签/搜索