源碼安裝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 ???#查看當前版本已經升級成功了

?