一、安裝nginx-1.15.8版本
1.解壓,編譯,安裝nginx
[root@server1 ~]# ls
nginx-1.15.8.tar.gz nginx-1.16.0.tar.gz
[root@server1 ~]# tar zxf nginx-1.15.8.tar.gz
[root@server1 ~]# cd nginx-1.15.8
[root@server1 nginx-1.15.8]# ls
[root@server1 nginx-1.15.8]# vim auto/cc/gcc
#關閉debug文件
# debug
#CFLAGS="$CFLAGS -g"
安裝依賴性,編譯:
yum install -y gcc pcre-devel zlib-devel
./configure --prefix=/usr/local/nginx/
nginx源碼在src下
安裝:
[root@server1 nginx-1.15.8]# make && make install
objs目錄下多了nginx
2.給文件加高光
[root@server1 ~]# mkdir .vim
[root@server1 ~]# cd nginx-1.15.8/contrib/
[root@server1 contrib]# ls
README geo2nginx.pl unicode2nginx vim
[root@server1 contrib]# cp -r vim/* ~/.vim/
[root@server1 contrib]# vim ../conf/nginx.conf
3.設置nginx的worker工作數:
[root@server1 nginx-1.15.8]# vim /usr/local/nginx/conf/nginx.conf
user nginx nginx; ##設置使用nginx的用戶和組
worker_processes 2; ##設置啓動worker進程爲2個
[root@server1 ~]# useradd nginx
設置最大連接數,先設置系統允許最大連接數:
vim /etc/security/limits.conf
nginx - nofile 65535
vim /usr/local/nginx/conf/nginx.conf
events {
worker_connections 65535;
}
4.開啓nginx
[root@server1 ~]# /usr/local/nginx/sbin/nginx -t #檢測文件
[root@server1 ~]# /usr/local/nginx/sbin/nginx -V #查看版本號
[root@server1 ~]# /usr/local/nginx/sbin/nginx
查看端口是否開啓:
[root@server1 ~]# netstat -tnlp
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 6208/nginx: master
[root@server1 ~]# ps -ef | grep nginx ##可以查看到nginx的master與worker進程,master用於監控
打開瀏覽器:http://172.25.60.1/
nginx安裝成功
二、Nginx版本更新(平滑升級)
先給源版本做備份,如果更新出錯,便於回退
[root@server1 ~]# cd /usr/local/nginx/sbin/
[root@server1 sbin]# cp nginx nginx.old
tar zxf nginx-1.16.0.tar.gz
cd nginx-1.16.0
./configure --prefix=/usr/local/nginx --with-file-aio
make #不能make install,會在/usr/local/nginx/目錄下生成sbin目錄,替換原來的目錄
cd objs/
cp -f nginx /usr/local/nginx/sbin/nginx ##-f,強制複製 不加會報nginx正在運行無法複製
ps -ef | grep nginx ##查看nginx master和worker進程號
kill -USR2 6208(master進程號) ##使當前版本的nginx執行完正在執行的任務後不再執行 這時新舊版本一起工作
ps -ef | grep nginx ##可查看到新舊進程
kill -WINCH 6208 ##關閉舊的master下的worker
ps -ef | grep nginx ##可查看到只有新版的worker
/usr/local/nginx/sbin/nginx -V ##可看到新版號
nginx更新成功!
三、nginx版本回退
[root@server1 ~]# cd /usr/local/nginx/sbin/
[root@server1 sbin]# ls
nginx nginx.old
[root@server1 sbin]# cp -f nginx.old nginx
cp: overwrite 'nginx'? y
[root@server1 ~]# ps -ef | grep nginx
[root@server1 ~]# kill -HUP 6208 ##將舊版master喚醒
[root@server1 ~]# ps -ef | grep nginx
[root@server1 ~]# kill -USR2 18305
[root@server1 ~]# ps -ef | grep nginx
[root@server1 ~]# kill -WINCH 18305
[root@server1 ~]# ps -ef | grep nginx
[root@server1 ~]# /usr/local/nginx/sbin/nginx -V