LINUX测试环境部署nginx(五)
安装配置nginx
- 安装编译环境:yum -y install pcre-devel openssl openssl-devel
- 拷贝nginx压缩文件到目标目录后,解压tar -zxvf nginx1.4.4.tar.gz
- 设置编译参数:./configure --prefix=/usr/local/nginx --with-http_stub_status_module (/usr/local/nginx目录下运行)
- 编译:make
- 安装:make install
- 启动cd /usr/local/nginx/sbin/
./nginx
centos下安装nginx (yum安装)
编译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
从图中可以看到,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可执行程序,依次启动新的主进程和新的工作进程。
(4)此时,新、旧版本的Nginx实例会同时运行,共同处理输入的请求。要逐步停止旧版本的Nginx实例,你必须发送WINCH信号给旧的主进程,然后,它的工作进程就将开始从容关闭:
kill -WINCH 旧版本的Nginx主进程号
(5) 一段时间后,旧的工作进程(worker process)处理了所有已连接的请求后退出,仅由新的工作进程来处理输入的请求了:
(6)这时候,我们可以决定是使用新版本,还是恢复到旧版本:
kill –HUP 旧的主进程号:Nginx将在不重载配置文件的情况下启动它的工作进程;
kill –QUIT 新的主进程号:从容关闭其工作进程(worker
process);
kill –TERM 新的主进程号:强制退出;
kill 新的主进程号或旧的主进程号:如果因为某些原因新的工作进程不能退出,则向其发送kill信号。
新的主进程退出后,旧的主进程会移除.oldbin前缀,恢复为它的.pid文件,这样,一切就都恢复到升级之前了。如果尝试升级成功,而你也希望保留新的服务器时,可发送QUIT信号给旧的主进程,使其退出而只留下新的服务器运行:
LINUX测试环境部署nginx(五)的更多相关文章
- (转)LINUX测试环境部署Redis(四)
安装配置Redis 第一部分:安装redis 希望将redis安装到此目录 1 /usr/local/redis 希望将安装包下载到此目录 1 /usr/local/src 那么安装过程指令如下: ...
- LINUX测试环境部署manggo(六)
安装配置manggo 复制安装包mongodb-linux-x86_64-2.6.5.tgz到/usr/local/目录下,或者如果有网络可以直接使用wget命令下载安装包到/usr/local目录下 ...
- LINUX测试环境部署mysql(三)
安装配置mysql 1.安装 查看有没有安装过: yum list installed mysql* rpm -qa | grep mysql* 查看有没有安装包: yum list mysql* 安 ...
- Linux测试环境部署tomcat(二)
安装配置tomcat 1:在http://tomcat.apache.org/download-80.cgi下载最新安装包 2:安装tomcat 将apache-tomcat-8.0.21.tar.g ...
- Linux测试环境部署jdk(一)
安装配置JDK yum install -y lrzsz 安装rz,方便xshell上传下载文件 Jdk: jdk-6u1-linux-i586 Tomcat: apache-tomcat-7.0. ...
- Linux测试环境搭建的学习建议
随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起.这里介绍学习Linux测试环境搭建的一些建议. 一.Linux测试环境搭建从基 ...
- Linux测试环境简单使用教程
0. 本blog 简单说明一下 Linux测试环境尤其是 CentOS测试环境的开发测试使用, 教程可能不会很长, 主要是入门. 0.1 Linux简介: Linux 的历史基本上不用阐述, linu ...
- Hadoop 学习笔记 (八) hadoop2.2.0 测试环境部署 及两种启动方式
1基本流程步骤1:准备硬件(linux操作系统)步骤2:准备软件安装包,并安装基础软件(主要是JDK)步骤3:修改配置文件步骤4:分发hadoop步骤5:启动服务步骤6:验证是否启动成功!2硬件配置要 ...
- linux服务器环境部署(三、docker部署nginx)
一.下载nginx镜像 官网地址:https://hub.docker.com/_/nginx #下载镜像 默认为最新版本 docker pull nginx#下载指定版本 docker pull n ...
随机推荐
- MySQL Workbench的使用教程 (初级入门版)
MySQL Workbench 是 MySQL AB 最近释放的可视数据库设计工具.这个工具是设计 MySQL 数据库的专用工具. MySQL Workbench 拥有很多的功能和特性:这篇由Djon ...
- red hat enterprise 6安装tftp服务
1--->检查是否安装tftp rpm -qa tftp* 2--->安装tftp yum install -y tftp-server 3--->chkconfig --list| ...
- windows上传代码到github
上传代码到github上有很多种方法,在这里我介绍一种比较简单的一种.工具嘛,越简单越好用啊. 1.首先下载github在windows下的客户端 下载地址:https://desktop.githu ...
- vim笔记2
用vim 快两年了 看过教程也不少,总的来说还是得自己多练习,当自己觉得有需要的时候,再添加功能.这里分享个看过的最好的教程,出自贴吧的某个朋友,写的很好 零 学会盲打 壹 配置文件先从最简开始,在 ...
- Myeclipse闪退故障
Myeclipse在编辑代码是出现反复一个异常错误. Index out of bounds,而且窗口关闭后还是出现, 于是在任务管理器里强制关闭MyEclipse. 关闭后启动MyEclipse总是 ...
- CreateFile函数详解
CreateFile函数详解 CreateFile The CreateFile function creates or opens the following objects and returns ...
- Activity packagename has leaked window android.widget.PopupWindow$PopupDecorView{4f92660 V.E...... .......D 0,0-455,600} that was originally added here
原因是在销毁Activity时,Activity中的popupwindow还处于显示状态. 解决方法是重写Activity的onDestroy()方法,在Activity销毁前调用popupWindo ...
- 在Visual Studio中使用Git命令提示符
VS2015自带了Git插件,但有时候我觉得Git控制台命令更方便些. VS中本身不能把Git Bush作为浮动窗集成进来,但我们可以通过Power Shell来使用Git命令. ---------- ...
- 初学SQL常用到的一些指令
一.库 查看有哪些库:show databases; 进入某个库:use 库名; 新增库:create database atm; (atm为库名) 删除库:drop database if exis ...
- 机器学习之分类器性能指标之ROC曲线、AUC值
分类器性能指标之ROC曲线.AUC值 一 roc曲线 1.roc曲线:接收者操作特征(receiveroperating characteristic),roc曲线上每个点反映着对同一信号刺激的感受性 ...