configure腳本:
nginx
一、cat <EOF >>test.txt數組
EOF服務器
多行追加tcp
二、unameide
用於打印當前操做系統的相關信息測試
三、2>/dev/nullui
/dev/null 表明空設備文件
spa
1 表示stdout標準輸出,系統默認值是1,因此">/dev/null"等同於"1>/dev/null"
2 表示stderr標準錯誤
& 表示等同於的意思,2>&1,表示2的輸出重定向等同於1
操作系統
四、configure腳本生成的文件命令行
默認在obj/
|---ngx_auto_headers.h 保存了宏
|---autoconf.err 保存configure執行過程當中產生的結果
|---ngx_auto_config.h 保存了宏
|---ngx_modules.c 關鍵文件,定義了ngx_modules數組,該數組指明瞭每一個模塊在Ngnix中的優先級
|---src 存放編譯時產生的目標文件
| |---core
| |---event
| | |---modules
| |---os
| | |---unix
| | |---win32
| |---http
| | |---modules
| | |---perl
| |---misc
|---Makefile 編譯Nginx工程、在加入install參數後安裝Nginx
Nginx的命令行控制:
一、默認啓動方式
直接執行nginx二進制程序
/usr/local/nginx/sbin/nginx
不加參數默認讀取 默認路徑下的配置文件/use/local/nginx/conf/nginx.conf
二、另行指定配置文件
/usr/local/nginx/sbin/nginx -c /tmp/nginx.conf
此時會讀取-c 後面的文件來啓動Nginx
三、另行指定安裝目錄
-p
四、另行指定全局配置項
/usr/local/nginx/sbin/nginx -g "pid /var/nginx/test.pid;"會把pid文件寫到test.pid中
-g的一個約束條件是指定的配置項不能與默認路徑下的nginx.conf中的配置項衝突,具體可查看/usr./ocal/nginx/conf/nginx.conf文件內容;另外一個約束條件是以-g方式啓動的Nginx服務在執行其餘命令時,需把-g參數也帶上,不然可能出現配置項不匹配的情形
五、測試配置信息是否有錯誤
/usr/local/nginx/sbin/nginx -t
六、在測試配置階段不輸出信息
/usr/local/nginx/sbin/nginx -t -q
七、顯示Nginx版本信息
/usr/local/nginx/sbin/nginx -v
八、顯示版本信息和編譯階段的參數
/usr/local/nginx/sbin/nginx -V
九、快速地中止服務
/usr/local/nginx/sbin/nginx -s stop
強制中止Nginx服務, -s告訴Nginx程序向正在運行的Nginx服務發送信號量,Nginx程序會經過/usr/local/nginx/logs/nginx.pid文件獲取master進程的ID,再向master進程發送TERM信號來快速關閉Nginx服務
效果和kill -s SIGTERM <nginx master pid> 同樣
worker進程與master進程收到信號後會馬上跳出循環,退出進程
十、「優雅」地中止服務
/usr/local/nginx/sbin/nginx -s quit
會發送QUIT信號給master進程 效果和kill-s SIGQUIT <nginx master pid> 同樣
首先會關閉監聽端口,中止接收新的鏈接,而後把當前正在處理的鏈接所有處理完,最後再退出進程
十一、使運行中的Nginx重讀配置項並生效
/usr/local/nginx/sbin/nginx -s reload
Nginx會先檢查配置項是否有誤,若是正確則以「優雅」的方式關閉,在從新啓動Nginx
效果同kill -s SIGHUP <nginx master pid>
十二、日誌文件回滾
/usr/local/nginx/sbin/nginx -s reopen
從新打開日誌文件,這樣能夠先把當前日誌文件更名或轉移到其餘目錄中進行備份,再從新打開時就會生成新的日誌文件
1三、平滑升級Nginx
當服務器升級到新版本時,必須將舊的二進制文件替換掉,nginx支持不重啓服務完成過新版本的平滑升級
一、通知正在運行的舊版本Nginx準備升級,向master進程發送USER2信號
kill -s SIGUSER2 <nginx master pid>
這時會重命名/usr/local/nginx/logs/nginx.pid爲/usr/local/nginx/log/nginx.pid.oldbin
二、以以上方式的任一種啓動新版本的Nginx,這時經過ps可看到舊版本的服務還在運行
三、經過kill向舊版本master進程發送SIGQUIT信號便可,以「優雅」方式關閉
1四、顯示命令行幫助
/usr/local/nginx/sbin/nginx -h
/usr/local/nginx/sbin/nginx -?
關閉80端口
fuser -k 80/tcp