第二章Nginx服务器的安装、升级详情
一、获取Nginx服务器安装文件的途径
二、Linux平台下Nginx服务器的编译和安装
一、如何获取Nginx服务器安装文件
1.1.nginx服务器的软件版本包括windows和Linux版两种,在官方网站上可以找到对应版本的下载链接,nginx的官方下载网站为
1 | http: //nginx.org/en/download.html |
1.2分别介绍页面上下载部分各个链接的具体含义
CHANGES-x.x链接,记录的是对应版本的功能变更日志。包括新增功能、功能的优化和功能的缺陷的修复等。
紧接着“CHANGES-x.x”链接后面的nginx-x.x.x链接,是Nginx服务器的Linux版本下载链接。右击链接,选择
另存为命令或者专用工具下载
pap链接,记录的是提供下载版本使用PGP加密自由软件GnuPG计算后的签名。
nginx/windows-x.x.x链接,是Nginx服务器的windows版本下载链接。
1.3.获取历史版本
1 | http: //nginx.org/download |
二、Nginx服务器安装
2.1安装依赖
为了编译nginx源代码,需要标准的GCC编译器 由于Nginx的一些模块需要依赖其他第三方库,通常有pcre库(支持rewrite模块)、zlib(支持gzip模块)和openssl(支持ssl模块)等。
1 | yum install -y gcc.x86_64 gcc-c++.x86_64 pcre pcre-devel.x86_64 zlib-devel.x86_64 zlib open openssl-devel |
2.2linux版本的编译和安装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 解压nginx-1.10.1.tar.gz tar xf /usr/local/nginx-1.10.1.tar.gz 进入目录 cd nginx-1.10.1/ <br>目录详情 [root@Nginx nginx-1.10.1]# ll total 688 drwxr-xr-x 6 1001 1001 4096 Oct 29 12:00 auto -rw-r--r-- 1 1001 1001 262898 May 31 21:47 CHANGES -rw-r--r-- 1 1001 1001 400701 May 31 21:47 CHANGES.ru drwxr-xr-x 2 1001 1001 4096 Oct 29 12:00 conf -rwxr-xr-x 1 1001 1001 2481 May 31 21:47 configure drwxr-xr-x 4 1001 1001 4096 Oct 29 12:00 contrib drwxr-xr-x 2 1001 1001 4096 Oct 29 12:00 html -rw-r--r-- 1 1001 1001 1397 May 31 21:47 LICENSE drwxr-xr-x 2 1001 1001 4096 Oct 29 12:00 man -rw-r--r-- 1 1001 1001 49 May 31 21:47 README drwxr-xr-x 9 1001 1001 4096 Oct 29 12:00 src |
目录介绍
1 2 3 4 5 | src目录中放了nginx软件的所有源代码。 man目录中存放了nginx软件的帮助文档。 html目录中存放了两个后缀名为.html的静态网页文件。 config存放了配置文件,包含nginx服务器的基本配置文件和对部分特性的配置文件。 auto目录,我们可以看到各种脚本资源。 |
nginx源代码的编译需要使用configure脚本,一是检查环境,根据环境检查结果生成C代码,二是生成makefile文件。 生成makefile文件,并且指定一个安装目录
1 | ./configure --prefix=/application/nginx-1.10.1 |
按Enter键运行命令,可以在屏幕上看到configure脚本调用auto目录中的各种脚本对系统环境以及设置进行 检测
1 2 3 4 | #可以看编译过程 [root@Nginx nginx-1.10.1]# make #安装 [root@Nginx nginx-1.10.1]# make install |
2.3启动nginx服务,并且查看文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 检查配置语法 [root@Nginx nginx-1.10.1]# /application/nginx-1.10.1/sbin/nginx -t nginx: the configuration file /application/nginx-1.10.1/conf/nginx.conf syntax is ok nginx: configuration file /application/nginx-1.10.1/conf/nginx.conf test is successful 启动 [root@Nginx nginx-1.10.1]# /application/nginx-1.10.1/sbin/nginx 查看Ningx目录 [root@Nginx nginx-1.10.1]# ll total 36 drwx------ 2 nobody root 4096 Oct 29 14:46 client_body_temp drwxr-xr-x 2 root root 4096 Oct 29 14:44 conf drwx------ 2 nobody root 4096 Oct 29 14:46 fastcgi_temp drwxr-xr-x 2 root root 4096 Oct 29 14:44 html drwxr-xr-x 2 root root 4096 Oct 29 14:46 logs drwx------ 2 nobody root 4096 Oct 29 14:46 proxy_temp drwxr-xr-x 2 root root 4096 Oct 29 14:44 sbin drwx------ 2 nobody root 4096 Oct 29 14:46 scgi_temp drwx------ 2 nobody root 4096 Oct 29 14:46 uwsgi_temp |
另外,在没有改动源代码的情况下如果需要重新编译和安装nginx软件,就不必再使用configure脚本生成makefile了。可以先删除上次安装的nginx软件。
1 | rm -rf /application/nginx-1.10.1 |
然后回到/cd/usr/local/nginx-1.10.1目录,清除上次编译的遗留文件,make clean 之后再使用make install
nginx服务器的安装目录中主要包括了conf、html、logs和sbin等4个目录
1 2 3 4 | conf目录中存放的是nginx所有配置文件,其中nginx.conf文件是nginx服务器的主配置文件 html目录中存放了Nginx服务器在运行过程中调用的一些html网页文件。 log目录,是用来存放Nginx服务器日志的 sbin目录,就是nginx服务器的主程序 |
2.4nginx服务的启停控制
Nginx在运行时,会保持一个和多个worker process工作进程。
1 2 3 | [root@Nginx nginx-1.10.1]# ps -ef | grep 'nginx' root 6857 1 0 14:46 ? 00:00:00 nginx: master process /application/nginx-1.10.1/sbin/nginx nobody 6858 6857 0 14:46 ? 00:00:00 nginx: worker process |
nginx服务的启动
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | -t 检测是否要错误,可以结合-q 如果没有错误信息,将不会输出内容 [root@Nginx nginx-1.10.1]# nginx -t nginx: the configuration file /application/nginx-1.10.1/conf/nginx.conf syntax is ok nginx: configuration file /application/nginx-1.10.1/conf/nginx.conf test is successful 查看版本号,和编译的参数 [root@Nginx nginx-1.10.1]# nginx -V nginx version: nginx/1.10.1 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC) configure arguments: --prefix=/application/nginx-1.10.1 查看版本号 [root@Nginx nginx-1.10.1]# nginx -v nginx version: nginx/1.10.1 平滑重启 [root@Nginx nginx-1.10.1]# nginx -s reload 启动nginx服务 [root@Nginx nginx-1.10.1]# nginx |
nginx服务的信号控制在nginx服务的启停办法中,有一类是通过信号机制来实现的。 通过给nginx服务的主进程发送信号就可以控制服务的启停了。
2.5查看nginx主进程号的两种途径
1 2 3 | 查看Logs目录下的nginx.pid 使用ps -ef | grep nginx |
2.6nginx服务可接收的信号
1 2 3 4 5 6 7 | 信号 作用 TERM或INT 快速停止nginx服务 QUIT 平缓停止nginx服务 HUP 使用新的配置文件启动进程,之后平缓停止原有进程,也就是所谓的平滑重启 USR1 重新打开日志文件,常用于日志切割, USR2 使用新版本的nginx文件启动服务,之后平缓停止原有Nginx进程,也就是所谓的平滑升级 WINCH 平缓停止worker process,用于nginx服务器平滑升级 |
向nginx服务主进程发送信号也有两种方法。一种是使用nginx二进制文件,另一种方法是使用kill命令发送信号
1 2 3 | kill -s signal pid signal,用于指定信号,即上面的信号 pid 指定nginx服务主进程的PID,也可以使用nginx.pid动态获取PID号 |
三、Nginx服务器的升级
例如:公司业务需求,需要升级nginx-1.11.5 ,首先要备份好
1 | [root@Nginx application]# tar zcvf nginx-1.10.1.tar.gz nginx-1.10.1/ |
3.1.查看老版本的编译参数
1 2 3 4 | [root@Nginx nginx-1.10.1]# nginx -V nginx version: nginx/1.10.1 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC) configure arguments: --prefix=/application/nginx-1.10.1 |
3.2升级nginx-1.11.5
1 2 3 4 | tar xf nginx-1.11.5.tar.gz cd nginx-1.11.5/ ./configure --user=nginx -- group =nginx --prefix=/application/nginx-1.10.1 --with-http_stub_status_module make && make install |
3.3备份并替换老nginx程序
1 2 | mv /application/nginx-1.10.1/sbin/nginx /application/nginx-1.10.1/sbin/nginx_1.10.1 cp /usr/local/nginx-1.11.5/objs/nginx /application/nginx-1.10.1/sbin/nginx |
3.4查看替换的版本
1 2 3 4 | [root@Nginx application]# nginx -V nginx version: nginx/1.11.5 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC) configure arguments: --user=nginx -- group =nginx --prefix=/application/nginx-1.10.1 --with-http_stub_status_module |
3.5检测配置文件并重新启动
1 2 | /application/nginx-1.10.1/sbin/nginx -t /application/nginx-1.10.1/sbin/nginx -s reload |
3.6用浏览器访问以下是否可以
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)