1. 程式人生 > 其它 >Nginx-1簡介與命令

Nginx-1簡介與命令

技術標籤:伺服器、運維nginx

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訊號也會在屆時進行演示,此處不用糾結。