Nginx启动、停止、重启、升级操作命令

本文介绍了Nginx的基本操作,包括启动、停止、平滑重启及平滑升级的方法,并详细解释了如何通过发送不同类型的信号来实现这些操作。
1.启动命令
nginx -c /usr/nginx/conf/nginx.conf
-c参数指定了要加载的nginx配置文件路径。
nginx -p /usr/nginx/
-p参数指定了nginx安装配置路径。
 
2.停止命令
停止操作是通过向nginx进程发送信号(什么是信号请参阅linux文章)来进行的
步骤1:查询nginx主进程号
ps -ef | grep nginx
在进程列表里面找master进程,它的编号就是主进程号了。
步骤2:发送信号
从容停止Nginx:
kill -QUIT 主进程号
快速停止Nginx:
kill -TERM 主进程号
强制停止Nginx:
pkill -9 nginx
另外,若在nginx.conf配置了pid文件存放路径则该文件存放的就是Nginx主进程号,如果没指定则放在nginx的logs目录下。有了pid文件,我们就不用先查询Nginx的主进程号,而直接向Nginx发送信号了,命令如下:
kill -信号类型 '/usr/nginx/logs/nginx.pid'
 
3.平滑重启
如果更改了配置就要重启Nginx,要先关闭Nginx再打开?不是的,可以向Nginx发送信号,平滑重启。
平滑重启命令:
kill -HUP 住进称号或进程号文件路径
注意,修改了配置文件后最好先检查一下修改过的配置文件是否正确,以免重启后Nginx出现错误影响服务器稳定运行。判断Nginx配置是否正确命令如下:
nginx -t -c /usr/nginx/conf/nginx.conf
 
4.平滑升级
如果服务器正在运行的Nginx要进行升级、添加或删除模块时,我们需要停掉服务器并做相应修改,这样服务器就要在一段时间内停止服务,Nginx可以在不停机的情况下进行各种升级动作而不影响服务器运行。
步骤1:
如果升级Nginx程序,先用新程序替换旧程序文件,编译安装的话新程序直接编译到Nginx安装目录中。
步骤2:执行命令
kill -USR2 旧版程序的主进程号或进程文件名
此时旧的Nginx主进程将会把自己的进程文件改名为.oldbin,然后执行新版Nginx。新旧Nginx会同市运行,共同处理请求。
这时要逐步停止旧版Nginx,输入命令:
kill -WINCH 旧版主进程号
慢慢旧的工作进程就都会随着任务执行完毕而退出,新版的Nginx的工作进程会逐渐取代旧版工作进程。
此时,我们可以决定使用新版还是恢复到旧版。
不重载配置启动新/旧工作进程
kill -HUP 旧/新版主进程号
从容关闭旧/新进程
kill -QUIT 旧/新主进程号
如果此时报错,提示还有进程没有结束就用下面命令先关闭旧/新工作进程,再关闭主进程号:
kill -TERM 旧/新工作进程号
这样下来,如果要恢复到旧版本,只需要上面的几个步骤都是操作新版主进程号,如果要用新版本就上面的几个步骤都操作旧版主进程号就行了。
 
上面就是Nginx的一些基本的操作,希望以后Nginx能有更好的方法来处理这些操作,最好是Nginx的命令而不是向Nginx进程发送系统信号
<think>我们正在处理用户关于Nginx主机版1.2.8编译升级的请求。用户希望得到操作指南。根据引用,我们有一些关于Nginx编译的参考资料,但需要注意版本差异(用户需要1.2.8,而引用中可能不是这个版本)。我们将结合通用编译步骤和版本特定注意事项来回答。步骤:1.准备环境:确保系统有必要的编译工具和依赖库。2.获取源代码:下载Nginx1.2.8版本的源代码。3.配置编译选项:使用configure脚本进行配置,根据需求添加模块。4.编译和安装:使用make命令进行编译,然后安装。5.配置文件调整:根据需要调整配置文件。6.启动和测试:启动新版本的Nginx并进行测试。注意:由于1.2.8是一个较旧的版本(发布于2012年),在下载时需要注意安全性和兼容性。建议从官方存档下载。引用[2]提供了Windows下的编译指南,但用户没有指定操作系统,我们假设是Linux(因为Nginx主要在Linux上运行)。引用[1]和[3]都是Linux环境下的操作。我们将以Linux环境为例提供指南。详细步骤:1.环境准备:安装编译所需的工具和依赖库。例如,在CentOS上:```bashyumgroupinstall"DevelopmentTools"yuminstallpcre-develzlib-developenssl-devel```2.下载源代码:```bashwgethttp://nginx.org/download/nginx-1.2.8.tar.gztarzxvfnginx-1.2.8.tar.gzcdnginx-1.2.8```3.配置编译选项:使用`./configure`命令进行配置。例如,基本的配置(可根据需要添加模块):```bash./configure--prefix=/usr/local/nginx--with-http_ssl_module```如果需要其他模块,请参考官方文档或使用`./configure--help`查看选项。4.编译和安装:```bashmakemakeinstall```5.配置文件调整:如果之前有旧版本的Nginx,配置文件可能需要迁移。新安装不会覆盖已有的配置文件(除非指定了相同的安装路径并覆盖)。建议备份旧配置文件,然后手动合并到新配置文件。根据引用[1]中的操作,用户可能需要修改nginx的主配置文件:`/usr/local/nginx/conf/nginx.conf`(如果安装路径是`/usr/local/nginx`)。6.启动和测试:启动Nginx:```bash/usr/local/nginx/sbin/nginx```检查版本:```bash/usr/local/nginx/sbin/nginx-v```应该显示`nginxversion:nginx/1.2.8`注意:如果系统原来有Nginx服务在运行,需要先停止旧服务,再启动新版本。另外,引用[3]提到了php-fpm的配置问题,在启动php-fpm时不能以root用户运行。如果用户使用php-fpm,需要注意在配置文件中指定非root用户。例如,在php-fpm的配置文件(如:/usr/local/php/etc/php-fpm.conf)中,设置:user=wwwgroup=www然后启动php-fpm。安全提示:升级到1.2.8版本需要注意,该版本可能已经不再维护,存在已知的安全漏洞。建议升级更新的稳定版本。相关问题:1.如何添加第三方模块到Nginx的编译过程中?2.升级Nginx后,如何确保配置文件的兼容性?3.Nginx1.2.8版本有哪些已知的安全问题?</think>### Nginx 1.2.8 编译升级操作指南(Linux环境) #### 1. **环境准备** - 安装编译依赖工具: ```bash yum groupinstall "Development Tools" # CentOS/RHEL # 或 apt install build-essential # Ubuntu/Debian ``` - 安装必需依赖库: ```bash yum install pcre-devel zlib-devel openssl-devel # CentOS/RHEL # 或 apt install libpcre3-dev zlib1g-dev libssl-dev # Ubuntu/Debian ``` #### 2. **获取源代码** - 下载Nginx 1.2.8源码包(官方存档): ```bash wget https://nginx.org/download/nginx-1.2.8.tar.gz tar zxvf nginx-1.2.8.tar.gz cd nginx-1.2.8 ``` #### 3. **配置编译选项** - 基础配置(根据需求添加模块): ```bash ./configure \ --prefix=/usr/local/nginx \ --with-http_ssl_module \ --with-http_stub_status_module ``` - 关键参数说明: - `--prefix`:安装路径 - `--with-http_ssl_module`:启用HTTPS支持 - 添加第三方模块使用 `--add-module=/path/to/module` #### 4. **编译与安装** ```bash make # 编译 make install # 安装到指定路径 ``` > **注意**:若升级现有环境,先备份原Nginx二进制文件: > ```bash > cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old > ``` #### 5. **配置文件迁移** - 保留旧配置文件(避免覆盖): ```bash cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak ``` - 手动合并新旧配置差异(重点检查`server`、`location`等区块) #### 6. **启动与验证** - 平滑重启(不中断服务): ```bash /usr/local/nginx/sbin/nginx -t # 测试配置 kill -USR2 `cat /usr/local/nginx/logs/nginx.pid` # 热升级 ``` - 验证版本: ```bash /usr/local/nginx/sbin/nginx -v # 应输出:nginx version: nginx/1.2.8 ``` #### 7. **常见问题解决** - **依赖缺失错误**:根据编译日志安装缺失库(如缺少OpenSSL时需`yum install openssl-devel`) - **权限问题**:确保安装目录有写入权限 - **服务启动失败**:检查`error.log`中的具体错误信息 - **第三方模块兼容性**:确认模块支持1.2.8版本 > **安全提示**:Nginx 1.2.8(2013年发布)已停止维护,存在安全风险。建议升级到[稳定版](https://nginx.org/en/download.html) --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值