Nginx-1簡介與命令
Nginx-1簡介與命令
****************** 如有侵權請提示刪除 *********************
背景
Nginx同Apache一樣都是一種WEB伺服器。基於REST架構風格,以統一資源描述符(UniformResources ldentifier)URl或者統一資源定位符(Uniform Resources Locator)URL作為溝通依據,通過HTTP協議提供各種網路服務。
然而,這些伺服器在設計之初受到當時環境的侷限,例如當時的使用者規模,網路頻寬,產品特點等侷限並且各自的定位和發展都不盡相同。這也使得各個WEB伺服器有著各自鮮明的特點。Apache的發展時期很長,而且是毫無爭議的世界第一大伺服器。它有著很多優點:穩定、開源、跨平臺等等。它出現的時間太長了,它興起的年代,網際網路產業遠遠比不上現在。所以它被設計為一個重量級的。它不支援高併發的伺服器。在Apache上執行數以萬計的併發訪問,會導致伺服器消耗大量記憶體。作業系統對其進行程序或執行緒間的切換也消耗了大量的CPU資源,導致HTTP請求的平均響應速度降低這些都決定了Apache不可能成為高效能WEB伺服器,輕量級高併發伺服器Nginx就應運而生了。
什麼是Nignx
-
Nginx是一個開源高效能的Http和反向代理伺服器,可靠的HTTP中介軟體,特點是佔用記憶體少,併發效能力強,專門為效能優化而開發,經受高負載的考驗。Nginx是一個跨平臺伺服器。
-
架構,Nginx為master/worker結構,masterz主程序,負責維護多個worker程序,負責分析並載入配置檔案, worker接收並處理使用者請求。Cache Loader 負責載入快取物件,Cache Manager負責管理快取物件。
-
開源版官網:nginx.org
-
商業版官網:nginx.com
開源版在細分之下,還有三個小類
-
主線版本:
“Mainline version”,也有人稱之為主幹版或者開發版,主線版本通常是最新的版本,主線版通常會加入一些最新的功能,這些功能可能沒有經過太多的測試,所以相對可能不太穩定,在真正的生產環境中,通常不會使用主線版本。 -
穩定版本:
“Stable version”,穩定版通常是由主線版發展而來的,穩定版通常是經過官方測試的,是官方認為相對穩定的版本,生產環境中通常會使用穩定版。 -
歷史版本:
“Legacy version”,當新的穩定版出現,那麼原先的穩定版就會被歸類到"歷史版本"中去。
我們可以開啟如下官網連線,檢視上述各個版本的資訊。
http://nginx.org/en/download.html
Nginx功能
- web伺服器、輕量級
- 負載、均衡
- 快取
- 高併發
- HTTP代理伺服器
- IP負載、靜態負載
- 動靜分離
- 限流、健康監控
- 跨站訪問
- 防盜鏈
基礎命令
進入/usr/local/nginx/sbin目錄,輸入./nginx即可
- 啟動nginx
./nginx - 關閉nginx
./nginx -s quit 或者 ./nginx -s stop - 重啟nginx
./nginx -s reload - 檢視nginx程序
ps aux|grep nginx - 設定nginx開機啟動,只需在rc.local增加啟動程式碼即可。
vim /etc/rc.local
然後在底部增加/usr/local/nginx/sbin/nginx
此外,進入/usr/local/nginx/conf目錄可修改nginx的配置檔案 -> vim nginx.conf
譬如修改域名以及埠啥的,在server裡面進行修改
- 檢查配置檔案格式
./nginx -t
- 看看nginx命令都有哪些可用的選項,
可以使用"-h選項"或者"-?選項",如下:
./nginx -h
./nginx -?
[[email protected] sbin]# ./nginx -h
nginx version: nginx/1.18.0
Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives]
Options:
#幫助命令
-?,-h : this help
# 顯示版本並退出
-v : show version and exit
#顯示版本和配置選項,然後退出
-V : show version and configure options then exit
#測試配置檔案格式和退出
-t : test configuration and exit
#測試配置,轉儲並退出
-T : test configuration, dump it and exit
#在配置測試期間抑制非錯誤訊息
-q : suppress non-error messages during configuration testing
# 訊號:向主程序傳送訊號:停止、退出、重新開啟、重新載入
-s signal : send signal to a master process: stop, quit, reopen, reload
#設定字首路徑(預設值:/usr/local/nginx/)
-p prefix : set prefix path (default: /usr/local/nginx/)
#檔名:設定配置檔案(預設值:conf/nginx.conf檔案)如:按指定配置檔案啟動
-c filename : set configuration file (default: conf/nginx.conf)
#指令:從配置檔案中設定全域性指令
-g directives : set global directives out of configuration file
-
quit訊號:nginx -s quit
與stop訊號的作用類似,quit訊號作用也是用於停止nginx服務,quit訊號和stop訊號的區別在於,nignx程序收到stop訊號以後會立即停止服務,而收到quit訊號後,不會再接收新的請求,但是會先處理完已經接受的連結請求,處理完這些請求之後再停止服務,這種停止方式被稱之為"優雅的停止"。 -
reload訊號:nginx -s reload
reload訊號的作用就是在不停止服務的情況下過載配置檔案,比如,nginx正在正常的提供服務,此時,管理員修改了nginx.conf檔案中的配置指令,管理員希望新的配置立刻生效,但是又不希望重啟nginx服務,此時就可以使用"nginx -s reload"命令過載配置檔案,以便在不重啟nginx的情況下載入新的配置,同時避免了因重啟而造成的服務中斷。 -
reopen訊號:nginx -s reopen
利用reopen訊號可以使nignx程序重新開啟日誌檔案,以便實現日誌分割的效果,關於日誌切割的話題會單獨總結一片文章,reopen訊號也會在屆時進行演示,此處不用糾結。