Nginx 概述
Nginx(engine x)由俄罗斯的程序设计师 Igor Sysoev 所开发,官方测试显示 Nginx 能够支撑高达 5 万并发连接数。Nginx 不仅可以作为 HTTP 服务器使用,处理静态页面或支持 FastCGI、SCGI、uWSGI 等协议的动态语言,还能充当反向代理服务器,实现负载均衡,以及提供 IMAP/POP3/SMTP 邮件服务等功能。
Nginx 之所以被广泛采用,得益于其高性能、稳定性、丰富的功能集、低资源消耗和高度可扩展性等特点。它采用异步非阻塞的事件驱动模型,能够高效地处理大量并发连接,且相比传统服务器软件,内存占用更低,能够在相同硬件上处理更多的请求。Nginx 还支持热部署,几乎可以做到 7*24 小时不间断运行,即使运行几个月也不需要重新启动,还能在不间断服务的情况下对软件版本进行热更新。
此外,Nginx 的配置文件简洁灵活,支持模块化扩展,可以根据需要进行定制。它的 Master 进程负责管理 Worker 进程,接受来自管理员的信号,并处理配置文件的加载和重新加载;而 Worker 进程则实际处理客户端请求。这种设计使得 Nginx 能够充分利用多核处理器和多线程的优势,提高处理效率。
下载
nginx 官网:https://nginx.org/en/download.html
找到下载页面,然后下载稳定版本(不建议下载最新版本)。
上传安装
开始安装
将文件上传到 Linux 上,然后开始安装所需要的依赖。
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
进行解压。
tar -zxvf nginx-1.26.2.tar.gz
进入 nginx 目录下。
cd nginx-1.26.2
创建一个目录(这里的 -p 表示建立多级目录的意思)。
mkdir -p usr/local/nginx
进行安装前的检查。
./configure --prefix=/usr/local/nginx
进行编译和安装。
make && make install
进入 /usr/local/nginx 文件夹。
目录结构
安装一个树结构命令。
yum install tree
然后直接执行 tree 命令,查看树结构。
常用命令
查看 nginx 的版本号 进入 sbin 目录,然后执行命令。
./nginx -v
查看 nginx 的正确性
./nginx -t
开启 nginx
./nginx
查看服务是否启动。
这里我们先从外部访问一下。先进入 html 页面。
在浏览器输入你自己的 ip 地址+:80,这里肯定是无法访问的,因为防火墙没关闭,或者 80 端口没有开放,这里我们直接开放 80 端口。
firewall-cmd --zone=public --add-port=80/tcp --permanent
然后重新加载防火墙。
firewall-cmd --reload
然后查询对外开放的端口。
firewall-cmd --zone=public --list-ports
再次访问,则访问成功。
停止服务。
/usr/local/nginx/sbin/nginx -s stop
看一下文件日志
more access.log
重新加载配置文件
先进入 conf 目录下面,然后查看。
用 vim 打开配置文件。
vim nginx.conf
修改后在保存,需要加载配置文件。
./nginx -s reload
配置文件
想要在全局都可以执行重新加载配置文件,打开文件。
vim /etc/profile
在环境变量中加入。
/usr/local/nginx/sbin:
重新加载配置文件。
source /etc/profile
输入命令,看到可以在任何目录下执行重新加载 nginx 文件。
启动 nginx 文件。
nginx
停止 nginx 文件。
nginx -s stop
配置文件结构
配置文件结构通常包含全局块、events 块、http 块等部分,具体层级关系需参考官方文档或实际配置文件。
具体应用
部署静态资源
如果要部署自己的静态资源,需要将资源放到 html 目录下。
cd html/
将文件放入之后,记得更改权限。
chmod 774 xxxx
放入之后,在浏览器中输入网址就可以访问该资源了。
反向代理
先看一下正向代理。
再看一下反向代理。
区别:正向代理一般是在客户端设置代理服务器,反向代理客户端并不知道反向代理服务器的存在。
在服务端设置反向代理。
负载均衡
相关配置。
负载均衡算法:默认是轮询的。
完成上述配置后,建议重启 Nginx 服务以验证所有变更是否生效,确保生产环境稳定运行。


