`
ckwang17
  • 浏览: 26269 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

centos下安装nginx

阅读更多

编译Nginx的要求如下:
磁盘空间:需要保证有10MB以上的剩余磁盘空间。Nginx安装完毕后会占据4MB左右的磁盘空间,实际的磁盘空间需求会因编译设置和是否安装第三方模块而有所不同。
GCC编译器及相关工具: GCC全称为GNU Compiler Collection,  是GNU社区推出的功能强大、性能优越的用于编程开发的自由编译器,是GNU的代表作品之一,目前可以编译的语言包括:C、C++、Objective- C、Fortran、Java等。您必须确保您的操作系统安装有GCC编译器。
另外,您还必须安装Autoconf和Automake工具 ,它们用于自动创建功能完善的Makefile,当前大多数软件包都是用这一工具生成Makefile的,Nginx也不例外。在CentOS系统下,您可以使用yum命令安装GCC编译器及相关工具:
yum -y install gcc gcc-c++ autoconf automake
模块依赖性: Nginx的一些模块需要其他第三方库的支持,例如gzip模块需要zlib库,rewrite模块需要pcre库,ssl功能需要openssl库 等。同样,如果是在CentOS系统下,我们可以使用yum命令安装或下载源码包编译安装这些模块依赖的库:
yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel

Nginx在Linux环境下可以通过编译源码的方式 来安装,最简单的安装命令如下:

tar zxvf nginx-版本号.tar.gz
cd nginx-版本号
./configure
make
make install

按照以上命令,Nginx将被默认安装到/usr/local/nginx目录下。您可以通过/configure --help 命令查看Nginx可选择的编译选项。

编译选项举例如下:

--prefix=<path>   Nginx安装路径。如果没有指定,默认为/usr/local/nginx
--sbin-path=<path>   Nginx可执行文件安装路径。只能安装时指定,如果没有指定,默认为<prefix>/sbin/nginx
--conf-path=<path>   在没有给定 –c 选项下默认的nginx.conf的路径。如果没有指定,默认为<prefix>/conf/nginx.conf
--pid-path=<path>     在nginx.conf中没有指定pid指令的情况下,默认的Nginx.pid的路径。如果没有指定,默认为<prerix>/logs/nginx.pid

等等

Nginx的启动,停止,平滑重启

启动Nginx
启动Nginx,可以执行以下命令。假设Nginx安装在/usr/locaUnginx/目录中,那么启动Nginx的命令就是:
/usr/local/nginx/sbin/nginx  -c /usr/local/nginx/conf/nginx.conf
参数“-c”指定了配置文件的路径,如果不加“-c”参数,Nginx会默认加载其安装目录的conf子目录中的nginx.conf文件

Nginx的停止
Nginx的停止方法有很多种,一般通过发送系统信号给Nginx主进程的方式来停止Nginx。
我们可以通过ps命令来查找Nginx的主进程号:
ps –ef | grep nginx

image

从图中可以看到,1个Nginx进程的备注信息为“master process”,表示它为主进程,另外的1个进程备注信息为“worker process”,表示它们为子进程。32244为主进程号。
如果在nginx.conf配置文件中指定了pid文件存放的路径(例如:/usr/local/webserver/nginx/logs /nginx.pid;),该文件中存放的就是Nginx当前的主进程号。如果没有指定pid文件存放的路径,nginx.pid文件默认存放在 Nginx安装目录的logs目录下。所以,我们也可以直接通过以下命令来完成,省下寻找Nginx主进程号的步骤:
kill -信号类型  `/usr/local/webserver/nginx/logs/nginx.pid`

(1)从容停止Nginx。
kill - QUIT Nginx主进程号  或者   kill -QUIT `/usr/local/webserver/nginx/logs/nginx.pid`

(2)快速停止Nginx
kill - TERM Nginx主进程号 或者  kill -TERM `/usr/local/webserver/nginx/logs/nginx.pid`

kill - INT Nginx主进程号    或者   kill -INT `/usr/local/webserver/nginx/logs/nginx.pid`

(3)强制停止所有Nginx进程

pkill –9 nginx

Nginx的平滑重启

如果改变了Nginx的配置文件(nginx conf),想重启Nginx,同样可以通过发送系统信号给Nginx主进程的方式来进行。不过,重启之前,要确认Nginx配置文件 (nginx.conf)的语法是正确的,否则Nginx将不会加载新的配置文件。通过以下命令可以判断Nginx配置文件是否正确:
/usr/local/webserver/nginx/sbin/nginx –t -c
/usr/local/webserver/nginx/conf/nginx.conf

如果配置文件不正确,屏幕将会提示配置文件的第几行出错:
[emerg]:unknown directive”abc“in /usr/local/webserver/nginx/conf/nginx.conf:55

configuration file /usr/local/webserver/nginx/conf/nginx.conf test failed

如果配置文件正确,屏幕将提示以下两行信息:
the configuration file /usr/local/webserver/nginx/conf/nginx.conf  syntax is OK
configuration file /usr/local/webserver/nginx/conf/nginx.conf  test is successful

这时候,就可以平滑重启Nginx了。
kill -HUP Nginx主进程号
kill一HUP   `/usr/local/webserver/nginx/logs/nginx.pid`

当Nginx接收到HUP信号时,它会尝试先解析配置文件,如果成功,就应用新的配置文件(例如,重新打开日志文件或监听的套接字)。之 后,Nginx运行新的工作进程并从容关闭旧的工作进程。通知工作进程关闭监听套接字,但是继续为当前连接的客户提供服务。所有客户端的服务完成后,旧的 工作进程被关闭。如果新的配置文件应用失败,Nginx将继续使用旧的配置进行工作。

Nginx支持以下几种信号类型:
·TERM,INT快速关闭;
·QUIT从容关闭;
·HUP平滑重启,重新加载配置文件;
·USR1重新打开日志文件,在切割日志时用途较大;
·USR2平滑升级可执行程序;
·WINCH从容关闭工作进程。

Nginx的平滑升级
当需要将正在运行中的Nginx升级、添加,删除服务器模块时,可以在不中断服务的情况下,使用新版本、重编译的Nginx可执行程序替换旧版本的可执行程序。步骤如下:

(1)使用新的可执行程序替换旧的可执行程序,对于编译安装的Nginx,可以将新版本编译安装到旧版本的Nginx安装路径中。替换之前,您最好备份一下旧的可执行文件。

(2)发送以下指令:
kill –USR2 旧版本的nginx主进程号

(3)旧版本Nginx的主进程将重命名它的.pid文件为.oldbin(例如:/usr/local/webserver/nginx/logs/nginx.pid.oldbin),然后执行新版本的Nginx可执行程序,依次启动新的主进程和新的工作进程。
image

(4)此时,新、旧版本的Nginx实例会同时运行,共同处理输入的请求。要逐步停止旧版本的Nginx实例,你必须发送WINCH信号给旧的主进程 ,然后,它的工作进程就将开始从容关闭:
kill -WINCH 旧版本的Nginx主进程号

(5) 一段时间后,旧的工作进程(worker process)处理了所有已连接的请求后退出,仅由新的工作进程来处理输入的请求了:
image

(6)这时候,我们可以决定是使用新版本,还是恢复到旧版本:
kill –HUP     旧的主进程号:Nginx将在不重载配置文件的情况下启动它的工作进程;
kill –QUIT    新的主进程号:从容关闭其工作进程(worker process);
kill –TERM   新的主进程号:强制退出;
kill  新的主进程号或旧的主进程号:如果因为某些原因新的工作进程不能退出,则向其发送kill信号。

新的主进程退出后,旧的主进程会移除.oldbin前缀,恢复为它的.pid文件,这样,一切就都恢复到升级之前了。如果尝试升级成功,而你也希望保留新的服务器时,可发送QUIT信号给旧的主进程,使其退出而只留下新的服务器运行:
image

分享到:
评论

相关推荐

    centos安装Nginx详细配置

    ### CentOS安装Nginx详细配置知识点 #### 一、安装准备 在开始部署Nginx之前,需要确保系统中已安装必要的开发工具和依赖库。 ##### 1. 安装GCC - **简介**:GCC (GNU Compiler Collection) 是一个用于编译多种...

    centos7.6离线安装nginx

    本文将详细介绍如何在CentOS 7.6上进行离线安装Nginx,这对于网络环境不稳定或者没有互联网连接的服务器尤为实用。 首先,确保你的系统是最新的。打开终端并运行以下命令来更新系统包: ```bash sudo yum update -...

    CentOS安装nginx

    标题“CentOS安装nginx”指出我们将探讨如何在 CentOS 操作系统上安装 Nginx,Nginx 是一个流行的开源 Web 服务器,以其高性能和稳定性著称,常用于处理静态内容和反向代理任务。描述中提到的“NULL 博文链接:...

    CentOS7下安装nginx

    这里记录一下自己在centos7操作系统下安装nginx的过程,以便之后学习时查阅。笔者这里的Linux服务器使用的是腾讯云服务器,本人是一名Java程序员也是Linux的初学者有什么不对的地方请多指教,以后还会有更多的关于...

    centos7下安装nginx(有网以及没有网络)

    ### CentOS 7 下安装 Nginx (有网络与无网络环境) #### 一、概述 Nginx 是一款广泛使用的高性能 HTTP 和反向代理 Web 服务器,同时也提供了 IMAP/POP3/SMTP 服务。其特点是占有内存少,并发能力强,事实上很多网站...

    centos 非root安装nginx

    在非root权限下安装Nginx,即不使用管理员权限进行安装,需要一些额外的步骤和技巧。下面将详细介绍这个过程。 首先,由于在非root环境下安装软件会受到权限限制,因此我们需要确保我们有足够的权限来创建目录、...

    centos下安装nginx+php+mysql

    ### CentOS 下安装 Nginx + PHP + MySQL 的详细步骤与注意事项 #### 一、环境准备与概述 在本文档中,我们将详细介绍如何在 CentOS 6.5 64位操作系统上搭建 LNMP (Nginx + MySQL + PHP) 环境。LNMP 是一种非常流行...

    Centos7.9 离线安装Nginx依赖包

    离线安装Nginx在没有网络的环境下尤其有用,但需要注意的是,这种方式可能会错过一些安全更新和新功能。在能够联网的环境中,推荐使用`yum`或`dnf`等包管理器进行安装和更新,以确保系统的安全性与稳定性。

    CentOS6.3安装nginx操作指南

    本指南将详细解释如何在 CentOS 6.3 环境下安装 Nginx,以及涉及到的源码编译与工具使用。 首先,确保系统是最新的。打开终端,输入以下命令更新系统软件包: ```bash yum update -y ``` 接下来,安装必要的构建...

    centos7安装nginx1.16.1

    ### CentOS 7 安装 Nginx 1.16.1 #### 一、概述 本篇文章将详细介绍如何在 CentOS 7 上安装 Nginx 1.16.1 版本。Nginx 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,由俄罗斯的...

    Centos7的nginx-1.24.0免编译包,直接解压修改配置文件,启动即可

    1. 首先,将提供的 `nginx.zip` 文件解压缩到你希望 Nginx 运行的目录下,例如 `/usr/local/nginx`。 2. 解压完成后,你可以看到一个名为 `nginx.conf` 的配置文件,这是 Nginx 的主配置文件,包含了服务器的基本...

    centOS7离线安装nginx依赖包.zip

    本压缩包"centOS7离线安装nginx依赖包.zip"显然是为了帮助用户在没有网络连接的环境中在CentOS 7上安装Nginx。离线安装意味着我们需要预先准备所有必要的依赖包,以便在目标机器上进行安装。 首先,了解Nginx的基本...

    Centos7.6.1810离线安装Nginx-所需依赖包

    Centos7.6.1810离线安装Nginx-所需依赖包 1、patch命令:patch-2.7.1-12.el7_7.x86_64.rpm 2、zlib-1.2.12.tar.gz 3、zlib-devel-1.2.7-20.el7_9.x86_64.rpm 4、pcre-8.32-17.el7.x86_64.rpm 5、pcre-devel-8.32-17....

    Linux系统CentOS7下离线安装部署nginx

    Linux系统下安装nginx-1.14.1所需的所有包 以及rpm依赖包,安装文档 https://blog.csdn.net/weixin_41851100/article/details/89565198

    centOS6.x下离线手动下载安装nginx

    本教程将详细介绍如何在没有网络连接的情况下在CentOS 6.x上安装Nginx。 首先,你需要获取Nginx的源码包。在这个案例中,我们有`nginx-1.14.0.tar.gz`,这是Nginx 1.14.0版本的源代码压缩包。要解压这个文件,你...

    centos下nginx安装操作文档

    ### CentOS 下 Nginx 安装操作文档 #### 概述 本文档旨在提供一份详细的指导,帮助用户在 CentOS 系统中成功安装 Nginx 1.11.4 版本及其所需依赖包。Nginx 是一款高性能的 HTTP 和反向代理 Web 服务器,同时也是一...

    Centos离线安装 Nginx

    离线安装 nginx 所需要的依赖

    CentOS自动安装nginx

    标题 "CentOS自动安装nginx" 涉及到的主要知识点是Linux系统管理,特别是针对CentOS发行版,以及网络服务器软件Nginx的自动化部署。Nginx是一款高性能的HTTP和反向代理服务器,常用于网站托管,因为它具有高并发处理...

    centos7.5离线安装nginx1.17.8全套包.zip

    - 使用`make`命令进行编译,然后使用`make install`将编译好的Nginx安装到系统默认路径(通常是`/usr/local/nginx`)。 4. **配置Nginx**: - 编辑`/etc/nginx/nginx.conf`配置文件,根据你的需求配置服务器块、...

    CentOS 7 Nginx 离线安装依赖库

    本篇文章将详细介绍如何在CentOS 7系统上离线安装Nginx,并着重讲解依赖库的处理方法。 Nginx是一款高性能的HTTP和反向代理服务器,广泛应用于Web服务器领域,尤其以其高效稳定而著称。在CentOS 7系统中安装Nginx时...

Global site tag (gtag.js) - Google Analytics