Nginx 是一个开源的、免费的网络服务器,可以用于视频流、缓存、负载平衡、反向代理和其他应用。Nginx开发者的目标是将其设计成一个能够提供最大性能和稳定性的网络服务器。此外,作为一个HTTP服务器,Nginx还可以作为一个反向代理,一个电子邮件代理服务器(SMTP、IMAP、POP3),以及一个UDP、TCP和HTTP服务器的负载平衡器来运行。
2004年10月,"Igor Sysoev"设计了Nginx,首次向公众发布。Igor最初设想将该软件作为解决C10k问题的一个方案。它经常超过其他流行的网络服务器的基准测试,特别是在处理静态内容或大量并发请求方面。一些知名的公司,如谷歌、英特尔、Netflix、Github、苹果、Twitter、LinkedIn、微软、IBM、Adobe,都在使用Nginx。
Nginx在CentOS中是如何工作的
Nginx 提供高并发和低内存使用。它利用一个异步的、事件驱动的方法,在一个线程中处理请求,而不是为每个网络请求生成单独的进程。在Nginx中,一个主进程可以监督几个工人进程。工人进程由主进程维护,而工人进程进行实际处理。由于Nginx 是异步的,每个请求都由工人进程同时处理,不会导致其他请求被阻塞。
CentOS中的Nginx有哪些特点?
Nginx有几个值得称赞的功能,包括:
- 支持IPv6
- 负载平衡
- 带有SNI的TLS/SSL
- 网络套接字
- 带缓存的反向代理
- 支持带缓存的FastCGI
- 处理索引文件、静态文件和自动索引
在使用Nginx时,验证其在系统中的状态是另一件重要的事情。这篇文章将演示如何在我的CentOS系统中检查Nginx。在开始之前,如果你的CentOS系统中还没有Nginx,请先安装它。
如何在CentOS中安装Nginx
首先,按 "CTRL+ALT+T"打开你的CentOS终端,然后写出下面的命令。
$ sudo yum install nginx



无错误的输出宣告Nginx已经成功安装在你的系统上。
如何在CentOS中启用Nginx
现在,利用下面给出的命令,在CentOS系统上启用Nginx。
$ sudo systemctl enable nginx

之后,启动Nginx服务。
$ sudo systemctl start nginx

如何在CentOS中为Nginx设置防火墙规则
接下来,我们要做的是设置防火墙,允许Nginx的外部连接,默认运行在80 端口。
为了永久启用80端口的HTTP连接,请在CentOS终端写出下面的命令。
$ sudo firewall-cmd --permanent --add-service=http

为了验证HTTP 防火墙服务是否被正确地添加到系统中,执行这个命令。
$ sudo firewall-cmd --permanent --list-all

现在,你必须重新加载防火墙服务。
$ sudo firewall-cmd --reload

全部完成!现在你将学习如何检查Nginx的状态。
如何在CentOS中检查Nginx状态
为了验证Nginx当前是否在系统中运行,你必须检查它在系统中的状态。在本节中,我们整理了两种不同的方法,供你检查CentOS上的Nginx状态。
如何在CentOS中使用systemctl检查Nginx状态
systemctl 命令是一个用于控制和调查systemd服务管理器和systemd Linux初始化系统的工具。它是一套系统管理库、守护程序和实用程序,取代了SystemV init daemon。
你可以执行systemctl命令来检查CentOS系统上的Nginx状态。
$ sudo systemctl status nginx

现代执行systemctl命令检查Nginx状态的方法如下。
$ systemctl is-active nginx
这里,输出结果声明Nginx在我们的系统上是 "活动"的。

如何在CentOS中使用lsof检查Nginx状态
lsof 是 "list open files"的首字母缩写。lsof命令显示文件系统中的活动用户进程。它对于找出为什么一个文件系统仍在使用而不能被卸载的原因很有用。
利用lsof命令中的"-i"选项,可以查看某个端口上所有正在执行的进程。执行下面的命令将显示目前在80端口上运行的所有进程。
$ sudo lsof -i TCP:80

结论
Nginx 是一个高性能的HTTP服务器、反向代理和POP3/IMAP代理服务器,它是免费提供的、开源的。它不使用线程来处理请求;相反,它采用了一个异步的、事件驱动的架构,可扩展性更强。在这篇文章中,我们已经演示了如何安装和配置Nginx。我还分享了如何在我的CentOS系统上检查Nginx状态。