源码安装nginx以及平滑升级
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
欢迎加入:高级运维工程师之路 598432640
这个博客不方便上传软件包,我给大家把软件包放到百度云链接:http://pan.baidu.com/s/1eS3bn4u 密码:04a1
操作平台:
1.创建ngxin用户,(用于管理nginx服务,您也可以随意指定的哟~)
[root@yinzhengjie ~]#useradd -s /sbin/nologin nginx
2.安装基础环境
[root@yinzhengjie ~]#yum -y install gcc pcre-devel openssl-devel zlib-devel
3.安装nginx
[root@yinzhengjie ~]#wget http://nginx.org/download/nginx-1.3.10.tar.gz
[root@yinzhengjie ~]#tar -zxvf nginx-1.3.10.tar.gz
[root@yinzhengjie ~]#cd nginx-1.3.10
[root@yinzhengjie ~]#./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module
[root@yinzhengjie ~]#make -j 4 && make install
4.启动Nginx
[root@yinzhengjie ~]#/usr/local/nginx/sbin/nginx #启动nginx服务
[root@yinzhengjie ~]#/usr/local/nginx/sbin/nginx -s stop #停止nginx服务
[root@yinzhengjie ~]#ss -untalp | grep 80 #cenos7只能用ss命令查端口
启动服务成功之后,可以通过curl 127.0.0.1验证服务是否启动成功:
如果是其他机器要访问这个服务器的建议关闭防火墙策略和selinux,如果生产环境中开启iptables的话需要写规则!当然selinux也一样!
5.创建nginx启动脚本
[root@yinzhengjie ~]#cat nginx
#!/bin/bash
#chkconfig: 2345 89 89
#Description:This is Nginx web script"
PID="/usr/local/nginx/logs/nginx.pid"
start(){
/usr/local/nginx/sbin/nginx
if [ $? -eq 0 ];then
echo -en "Starting Nginx...\t\t\t["
echo -en "\033[32;34mOK\033[0m"
echo "]"
else
echo "Starting Nginx Error"
fi
}
stop(){
/usr/local/nginx/sbin/nginx -s stop
if [ $? -eq 0 ];then
echo -en "Stop Nginx...\t\t\t["
echo -en "\033[32;34mOK\033[0m"
echo "]"
else
echo "Stop Nginx Error"
fi
}
status(){
if [ -f $PID ];then
ID=$(cat $PID)
echo "Ngix($ID) is running..."
else
echo "Nginx is stop"
fi
}
case $1 in
start)
start;;
stop)
stop;;
restart)
stop
start
;;
status)
status;;
*)
echo "Usage:$0 {start|stop|restart|status}"
esac
[root@yinzhengjie ~]#
将这个脚本加执行权限放到/etc/init.d/下就可以用以下方式启动nginx了
平滑升级
1.上传新版本nginx到服务器上
2./usr/local/nginx/sbin/nginx -v #查看当前Nginx版本
3.开始平滑升级
[root@yinzhengjie ~]#tar -xzf nginx-1.9.15.tar.gz
[root@yinzhengjie ~]#cd nginx-1.9.15
[root@yinzhengjie ~]#./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module
[root@yinzhengjie ~]#make #执行该命令后会生成objs/nginx目录
[root@yinzhengjie ~]#mv /usr/local/nginx/sbin/nginx /var/tmp/nginxold #这个步骤是为了备份之前的版本,如果升级失败的话可以回退的,切记要做好备份啊!
[root@yinzhengjie ~]#cp objs/nginx /usr/local/nginx/sbin/ #这个步骤是将新版本的nginx启动程序拷贝过来
[root@yinzhengjie ~]#make upgrade #升级
[root@yinzhengjie ~]#/usr/local/nginx/sbin/nginx -v #查看当前版本已经升级成功了