柚子快報(bào)邀請碼778899分享:運(yùn)維 Nginx源碼編譯安裝
Nginx
NginxNginx的特點(diǎn)Nginx的使用場景Nginx 有哪些進(jìn)程root 和 alias 指定路徑的區(qū)別root(根目錄)alias(別名目錄、虛擬目錄)
使用源碼編譯安裝Nginx準(zhǔn)備工作安裝依賴包編譯安裝Nginx檢查、啟動(dòng)、重啟、停止 nginx服務(wù)配置 Nginx 系統(tǒng)服務(wù)方法一:方法二:
訪問Nginx頁面
平滑升級Nginx準(zhǔn)備工作編譯安裝新版本Nginx驗(yàn)證
Nginx
Nginx的特點(diǎn)
最核心的區(qū)別在于Nginx 采用異步非阻塞機(jī)制 ,多個(gè)連接可以對應(yīng)一個(gè)進(jìn)程;Apache 采用的是同步阻塞+多進(jìn)程/線程模型,一個(gè)連接對應(yīng)一個(gè)進(jìn)程
Nginx 抗并發(fā)能力更高Nginx 更輕量,內(nèi)存、CPU資源消耗更少Nginx 配置簡潔,使用場景多,穩(wěn)定性高
Nginx的使用場景
用作Web網(wǎng)站服務(wù),處理http靜態(tài)頁面請求用作虛擬主機(jī),實(shí)現(xiàn)一個(gè)服務(wù)器用于做多個(gè)網(wǎng)站站點(diǎn)用作反向代理、負(fù)載均衡,可以作為網(wǎng)關(guān)代理服務(wù)器接收客戶端的請求轉(zhuǎn)發(fā)給后端節(jié)點(diǎn)服務(wù)器集群用作web緩存服務(wù)器
Nginx 有哪些進(jìn)程
master進(jìn)程:管理worker進(jìn)程,加載配置文件worker進(jìn)程:處理請求連接
root 和 alias 指定路徑的區(qū)別
root(根目錄)
處理方式: root路徑+location路徑
例:
#nginx.conf 配置示例
location /abc {
root /var/www;
}
url訪問:
http://
test.html文件存放在
/var/www/abc/kfc/test.html
http://IP地址/abc/kfc/test.html ------>> /var/www/abc/kfc/test.html
alias(別名目錄、虛擬目錄)
alias路徑替換location路徑
例:
#nginx.conf 配置示例
location /abc {
alias /var/www;
}
url訪問:
http://
test.html文件存放在
/var/www/kfc/test.html
http://IP地址/abc/kfc/test.html ------>> /var/www/kfc/test.html
使用源碼編譯安裝Nginx
準(zhǔn)備工作
關(guān)閉安全防護(hù)系統(tǒng)
systemctl disable firewalld.service --now
setenforce 0
SELINUX=enforcing -->SELINUX=0
下載源碼安裝包,并上傳至/opt目錄下 Nginx官網(wǎng) Nginx下載頁面
當(dāng)前我選擇 Nginx1.25.5,以便等會(huì)進(jìn)行平滑升級到最新版本 Nginx1.26.0
使用XFTP進(jìn)行文件傳輸——上傳到/opt目錄下
解壓文件到當(dāng)前目錄
cd /opt
tar xf nginx-1.25.5.tar.gz
ll
創(chuàng)建運(yùn)行用戶、組
useradd -M -s /sbin/nologin nginx
id nginx
安裝依賴包
yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make
編譯安裝Nginx
cd /opt/nginx-1.25.5/
./configure \
--prefix=/usr/local/nginx \ #指定nginx的安裝路徑
--user=nginx \ #指定用戶名
--group=nginx \ #指定組名
--with-http_stub_status_module #啟用 http_stub_status_module 模塊以支持狀態(tài)統(tǒng)計(jì)
make && make install
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ #讓系統(tǒng)識別nginx的操作命令
檢查、啟動(dòng)、重啟、停止 nginx服務(wù)
檢查nginx服務(wù)配置
nginx -t #檢查配置文件是否配置正確
啟動(dòng)nginx服務(wù)
/usr/local/nginx/sbin/nginx
netstat -lntp | grep 80
查看PID進(jìn)程號
cat /usr/local/nginx/logs/nginx.pid
##只有在運(yùn)行時(shí)才能查看PID號
停止nginx服務(wù)
kill -3
kill -s QUIT
killall -3 nginx
killall -s QUIT nginx
重啟nginx服務(wù)
kill -1
kill -s HUP
killall -1 nginx
killall -s HUP nginx
配置 Nginx 系統(tǒng)服務(wù)
方法一:
vim /etc/init.d/nginx
#!/bin/bash
#chkconfig: - 99 20
#description:Nginx Service Control Script
COM="/usr/local/nginx/sbin/nginx"
PID="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
$COM
;;
stop)
kill -s QUIT $(cat $PID)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PID)
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac
exit 0
chmod +x /etc/init.d/nginx #添加執(zhí)行權(quán)限
chkconfig --add nginx #添加為系統(tǒng)服務(wù)
systemctl start nginx
netstat -lntp | grep 80
方法二:
vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
chmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service
說明
[Unit]:服務(wù)的說明
Description:描述服務(wù)
After:依賴,當(dāng)依賴的服務(wù)啟動(dòng)之后再啟動(dòng)自定義的服務(wù)
[Service]服務(wù)運(yùn)行參數(shù)的設(shè)置
Type=forking是后臺運(yùn)行的形式,使用此啟動(dòng)類型應(yīng)同時(shí)指定PIDFile=,以便systemd能夠跟蹤服務(wù)的主進(jìn)程。
ExecStart為服務(wù)的具體運(yùn)行命令
ExecReload為重啟命令
ExecStop為停止命令
PrivateTmp=True表示給服務(wù)分配獨(dú)立的臨時(shí)空間
注意:啟動(dòng)、重啟、停止命令全部要求使用絕對路徑
[Install]服務(wù)安裝的相關(guān)設(shè)置,可設(shè)置為多用戶
訪問Nginx頁面
瀏覽器訪問:
http://<本機(jī)IP>:80
平滑升級Nginx
準(zhǔn)備工作
查看當(dāng)前安裝Nginx的版本及已模塊
nginx -v #查看當(dāng)前安裝的Nginx版本
nginx -V #查看當(dāng)前安裝的Nginx已安裝的模塊
下載新版本源碼安裝包,并上傳至/opt目錄下 解壓文件到當(dāng)前目錄 cd /opt
tar xf nginx-1.26.0.tar.gz
ll
編譯安裝新版本Nginx
cd /opt/nginx-1.26.0/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
--with-http_ssl_module
make
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old #備份老版本Nginx
cp objs/nginx /usr/local/nginx/sbin/nginx #將新版本的Nginx移動(dòng)到安裝目錄
make upgrade
#要保證當(dāng)前 nginx 進(jìn)程是通過 /usr/local/nginx/sbin/nginx 啟動(dòng)的,而不是通過查找環(huán)境變量中那個(gè) nginx 命令啟動(dòng)的
#或者先 killall nginx ,再/usr/local/nginx/sbin/nginx
驗(yàn)證
查看Nginx是否正常啟動(dòng)
netstat -lntp | grep 80
檢查當(dāng)前Nginx的版本
nginx -v
柚子快報(bào)邀請碼778899分享:運(yùn)維 Nginx源碼編譯安裝
推薦閱讀
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。