yum rpm安裝Nginx真的so easy 現在我來教你如何編譯安裝nginx 其實也很簡單
1.下載解壓
cd /usr/local/src
wget http://nginx.org/download/nginx-1.16.1.tar.gz
tar zxvf nginx-1.16.1.tar.gz
cd nginx-1.16.1/
2.執行編譯安裝命令:
./configure --prefix=/usr/local/nginx
錯誤資訊:
checking for OS
+ Linux 3.10.0-327.el7.x86_64 x86_64
checking for C compiler ... not found
./configure: error: C compiler cc is not found
解決方法:安裝gcc
yum -y install gcc
錯誤資訊:
./configure: error: the HTTP rewrite module requires the PCRE library.
解決方法:安裝pcre-devel
yum install pcre-devel
錯誤資訊:
./configure: error: the HTTP gzip module requires the zlib library.
解決方法:安裝zlib-devel
yum install zlib-devel
再次執行
./configure --prefix=/usr/local/nginx
正確的結果顯示:
3.執行make && make install
make && make install
現在在/usr/local下就有了nginx安裝目錄
4.如何啟動Nginx
cd /usr/local/nignx
啟動nginx:
./sbin/nginx
5.Nginx目錄介紹:
cd /usr/local/nignx
會發現nginx安裝目錄下會發現有四個目錄其中
conf:配置目錄
html 網頁檔案
logs 日誌檔案
sbin 主要的二進位制程式檔案
啟動nginx的時候可能會遇到很多問題 比如80埠被佔用 可以通過:
netstat -antp 檢視是哪個程式佔用了80
然後
kill -9 程式PID 殺死程式 或者
pkill -9 httpd 殺死該程式的所有程式 我這裡模擬的殺死httpd的所有程式
也有可能出現80埠沒有開放的事情 如何檢視80是否開放?
firewall-cmd –query-port=80/tcp 返回no說明80埠沒開放
firewall-cmd –add-port=80/tcp 開放80埠號
6.Nginx的關閉和重啟
如何重啟nginx呢? ps aux | grep nginx //首先檢視一下nginx的程式有哪些
你會發現怎麼兩個nginx 第一個是master主程式 第二個是子程式 真正幹活的是第二個worker子程式
master負責管理這些子程式!
重啟nginx我們可以使用nginx當中的訊號量
第一種:-INT
ps aux | grep nginx
可以看到nginx的主程式的PID
kill -INT 7450 //直接乾死nginx主程式 直截了當
然後進入到
cd /usr/local/nginx
./sbin/nginx
完成nginx的重啟工作!
這種方式很暴力 萬一使用者在下單 剛付完錢 但是資料沒入庫 就歇菜了!太暴力了!
第二種:quit
優雅的關閉程式 即等請求結束後再關閉
ps aux | grep nginx
可以看到nginx的主程式PID
kill -quit 7450 //優雅的殺掉主程式 等到請求結束再關閉
然後進入到
cd usr/local/nginx
./sbin/nginx
完成nginx的重啟工作
這種方式比較優雅!等請求結束後再殺死nginx的主程式!
第三種:hup
hup是你改了nginx的配置檔案 重讀配置檔案 它會實現平滑重啟
假設nginx的主程式還是7450
這個時候你修改了配置檔案 需要重新啟動
只需執行:
kill -hup 7450 //會平滑重啟 在完成前邊請求的前提下重新取讀取配置檔案 完成平滑重啟 客戶無感知!
整個過程不斷線 nginx的主程式PID不變 因為沒殺死程式啊!平滑的去重讀了nginx的配置檔案而已整個過程不斷線 nginx的主程式PID不變 因為沒殺死程式啊!平滑的去重讀了nginx的配置檔案而已
其他的重啟 關閉 nginx的方式:
進入nginx的安裝目錄
cd /usr/local/nginx
./sbin/nginx -s stop //關閉nginx服務
./sbin/nginx -s reload //相當於重讀配置檔案 其他類似 自己去試試吧!
7.Nginx的排查錯誤機制:
./sbin/nginx -t //這條命令會告訴你 你的nginx配置檔案是否配置正確 不正確又錯在了哪裡
8.設定開機啟動Nginx
cd /lib/systemd/system/
vim nginx.service //沒有就是新建
[Unit]
Description=nginx service
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
[Unit]:服務的說明
Description:描述服務
After:描述服務類別
[Service]:服務執行引數的設定
Type=forking:後臺執行的形式
ExecStart:服務的具體執行命令
ExecReload:重啟命令
ExecStop:停止命令
PrivateTmp=True:表示給服務分配獨立的臨時空間
注意:[Service]的啟動、重啟、停止命令全部要求使用絕對路徑。
[Install]:
執行級別下服務安裝的相關設定,可設定為多使用者,即系統執行級別為3。
設定開機啟動:設定開機啟動:
systemctl enable nginx
重啟測試
init 6
systemctl status nginx.service
訪問瀏覽器,成功!
可能會用到的命令:
systemctl start nginx.service //啟動
systemctl stop nginx.service //停止
systemctl restart nginx.service //重新啟動
systemctl status nginx.service //檢視狀態
systemctl enable nginx.service //設定開機啟動
systemctl disable nginx.service //停止開機啟動
systemctl list-units --type=service //檢視所有已啟動的
本作品採用《CC 協議》,轉載必須註明作者和本文連結