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

Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。其将源代码以类 BSD 许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。
它已经在众多流量很大的俄罗斯网站上使用了很长时间,这些网站包括 Yandex、Mail.Ru、 VKontakte,以及 Rambler。据 Netcraft 统计,在 2012 年 8 月份,世界上最繁忙的网站中有 11.48%使用 Nginx 作为其服务器或者代理服务器。目前互联网主流公司360、百度、新浪、腾讯、阿里等,目前中国互联网企业 70%以上公司都在使用 nginx 作为自己的 web 服务器。Nginx 特点是占有内存少,并发能力强,事实上 nginx 的并发能力确实在同类型的网页服务器中表现较好。Nginx 由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过配置文件将客户端请求映射到一个 location block(location 是 Nginx配置中的一个指令,用于 URL 匹配),而在这个 location 中所配置的每个指令将会启动不同的模块去完成相应的工作。

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

Nginx 由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个 location block(location 是 Nginx配置中的一个指令,用于 URL 匹配),而在这个 location 中所配置的每个指令将会启动不同的模块去完成相应的工作。
Nginx 的模块从结构上分为
核心模块、基础模块和第三方模块:
核心模块: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 对于句柄事件的选择不是遍历的,是事件响应的,就是句柄上事
件来就马上选择出来,不需要遍历整个句柄链表,因此效率非常高
2.Nginx下载安装
1. Nginx下载地址:nginx-1.13.0.tar.gz,下载到:/usr/local/software/

2.Nginx解压安装:
tar -zxvf nginx-1.13.0.tar.gz -C ./
3.Nginx编译
./configure
报错

3.1解决./configure: error: C compiler cc is not found错误:
错误原因:缺少编译环境,安装编译源码所需要的工具和库:
执行命令:yum install gcc gcc-c++ ncurses-devel perl
再次编译:./configure --prefix=/usr/local/nginx

3.2解决./configure: error: the HTTP rewrite module requires the PCRElibrary.错误:
错误原因:缺少HTTP rewrite module模块,禁用或者安装所需要的模块。我们选择安装模块:
执行命令:yum install pcre pcre-devel

3.3解决./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启动
1.查看安装目录:cd
conf 存放配置文件
html 网页文件
logs 存放日志
sbin shell启动、停止等脚本

2.启动nginx

查看进程

常见问题:

解决nginx:[emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)错误:
错误原因:不能绑定80端口,80端口已经被占用。
3.停止nginx,重新加载配置文件
执行命令:kill –INT进程号
启动成功:

重新读取配置文件:
nginx-s reload
4.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推荐书籍:
《深入剖析Nginx》
《实战Nginx:取代Apache的高性能Web服务器》
《深入理解Nginx:模块开发与架构解析》
《深入理解Nginx:模块开发与架构解析》
《决战Nginx技术卷:高性能Web服务器部署与运维》
《决战Nginx系统卷:高性能Web服务器详解与运维》
来源:技术学派今日头条号
热门课程
专业讲师指导 快速摆脱技能困惑相关文章
多种教程 总有一个适合自己专业问题咨询
你担心的问题,火星帮你解答为给新片造势,迪士尼这次豁出去了,拿出压箱底的一众经典IP,开启了梦幻联动朱迪和尼克奉命潜入偏远地带卧底调查 截至11月24日......
此前Q2问答环节,邹涛曾将《解限机》首发失利归结于“商业化保守”和“灰产猖獗”,导致预想设计与实际游玩效果偏差大,且表示该游戏......
2025 Google Play年度游戏颁奖:洞察移动游戏新趋势
玩家无需四处收集实体卡,轻点屏幕就能开启惊喜开包之旅,享受收集与对战乐趣库洛游戏的《鸣潮》斩获“最佳持续运营游戏”大奖,这不仅......
说明:文中所有的配图均来源于网络 在人们的常规认知里,游戏引擎领域的两大巨头似乎更倾向于在各自赛道上激烈竞争,然而,只要时间足......
在行政服务优化层面,办法提出压缩国产网络游戏审核周期,在朝阳、海淀等重点区将审批纳入综合窗口;完善版权服务机制,将游戏素材著作......
未毕业先就业、组团入职、扎堆拿offer...这种好事,再多来一打!
众所周知,火星有完善的就业推荐服务图为火星校园招聘会现场对火星同学们来说,金三银四、金九银十并不是找工作的唯一良机火星时代教育......
同学您好!