一、Nginx介紹
nginx web服務(wù)器部署
Nginx(“engine x”)是一款是由俄羅斯的程序設(shè)計師Igor Sysoev所開發(fā)高性能的 Web和 反向代理服務(wù)器,也是一個 IMAP/POP3/SMTP 代理服務(wù)器。和Apache一樣,都是web服務(wù)器軟件,因為其性能優(yōu)異,所以被廣大運維喜歡。又因為nginx是一個輕量級的web服務(wù)器,相比apache來說資源消耗更低。
延伸版本tengine(淘寶)、openresrt(章亦春)等
http://nginx.org 官網(wǎng)
http://www.nginx.cn/doc/index.html 中文文檔
最近大事記: 錘子科技在 T2 鳥巢發(fā)布會上將門票收入捐贈給了 OpenResty 開源項目 OpenResty(又稱:ngx_openresty) 是一個基于 NGINX 的可伸縮的 Web 平臺,由中國人章亦春發(fā)起,提供了很多高質(zhì)量的第三方模塊
二、nginx安裝
nginx安裝腳本
#!/bin/bash
#Auther: Bai Shuming
#Date: 2019-10-11 15:35
#Description: nginx-1.17 install from centos8-1905
?
?
#nginx源碼包下載路徑
nginx_pkg_url=http://nginx.org/download/nginx-1.17.4.tar.gz
?
#nginx安裝路徑,安裝路徑為$nginx_install_doc/nginx
nginx_install_doc=/usr/local
?
#nginx服務(wù)管理用戶
nginx_manage_user=www
?
#統(tǒng)計本機CPU核數(shù)
cpu_count=`grep -c "flags" /proc/cpuinfo`
?
check () {
?
#安裝nginx需要管理員權(quán)限
[ $UID -ne 0 ] && echo "need to be root so that" && exit 1
?
#安裝前的依賴包解決
#wget 命令
#gcc 編譯命令
#pcre-devel URL重寫功能
#zlib-devel 壓縮支持
#make 編譯命令
?
if ! (yum -y install wget gcc pcre-devel zlib-devel make &>/dev/null);then
echo "yum install soft package fail"
exit 1
fi
?
if ! (egrep "^www" /etc/passwd &>/dev/null);then
useradd -s /sbin/nologin -r -M www
fi
}
?
?
?
nginx_install () {
#1、下載軟件包
if wget $nginx_pkg_url &>/dev/null;then
#2、解壓軟件包
echo $nginx_pkg_url|awk -F "/" '{print $5}'|xargs tar xf
nginx_source_doc=`echo $nginx_pkg_url|awk -F "/" '{print $5}'|cut -d "." -f 1-3`
#3、進入軟件包
if [ ! -d $nginx_source_doc ];then
echo "unzip `echo $nginx_pkg_url|awk -F "/" '{print $5}'` fail"
exit 1
fi
cd $nginx_source_doc
?
#4、configure nginx
./configure --prefix=$nginx_install_doc/nginx --user=$nginx_manage_user --group=$nginx_manage_user 1>/dev/null
[ $? -ne 0 ]&&echo "nginx configure fail"&&exit 1
?
#5、make nginx
make -j $cpu_count 1>/dev/null
[ $? -ne 0 ]&&echo "nginx make fail"&&exit 1
#6、install nginx
make install 1>/dev/null
[ $? -ne 0 ]&&echo "nginx install fail"&&exit 1||echo "`clear`nginx install success..."
?
#7、delete nginx soft package
cd ..
rm -rf ${nginx_source_doc}*
?
else
echo "$nginx_pkg_url download fail"
exit 1
fi
?
}
?
#####callable function
check;nginx_install
?
- 命令啟動
- 采用systemctl管理
3.1命令啟動
使用nginx命令啟動
[root@node1 ~]# /usr/local/nginx/sbin/nginx
查看啟動結(jié)果
[root@node1 ~]# lsof -i :80 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 42948 root 9u IPv4 90839 0t0 TCP *:http (LISTEN) nginx 42949 www 9u IPv4 90839 0t0 TCP *:http (LISTEN)
通過lsof命令查看,發(fā)現(xiàn)nginx已經(jīng)啟動,并且子進程也是由www用戶管理的,完美!
3.2采用systemctl管理
生成systemctl啟動管理文件,該文件默認(rèn)沒有,需要自己建立。
[root@node1 ~]# cat /etc/systemd/system/nginx.service [Unit] Description=nginx server daemon Documentation=http://nginx.org/en/docs/ After=network.target ? [Service] Type=forking PIDFile=/usr/local/nginx/logs/nginx.pid ExecStartPre=/usr/local/nginx/sbin/nginx -t ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true ? [Install] WantedBy=multi-user.target
讓systemctl重新加載一下,這樣就能發(fā)現(xiàn)新添加的文件了。然后就是雷打不動的兩部曲了
- 開機啟動
- 服務(wù)管理
#重載systemctl服務(wù) [root@node1 ~]# systemctl daemon-reload ? #設(shè)置nginx開機啟動 [root@node1 ~]# systemctl enable nginx Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /etc/systemd/system/nginx.service. ? #nginx服務(wù)管理 啟動 關(guān)閉 狀態(tài)查看 重載 重啟 [root@node1 ~]# systemctl start nginx [root@node1 ~]# systemctl stop nginx [root@node1 ~]# systemctl status nginx [root@node1 ~]# systemctl reload nginx [root@node1 ~]# systemctl restart nginx ? 同樣可以采用lsof命令查看nginx的變化






