Nginx-基本配置(一)

優(yōu)點(diǎn)

  • 更快
  • 高擴(kuò)展性
  • 高可靠性
  • 低內(nèi)存
  • 萬級并發(fā)量
  • 熱部署

基本命令

  • 啟動
    • 使用默認(rèn)配置文件(默認(rèn)配置文件路徑 /usr/local/etc/nginx/nginx.conf)
      /usr/local/bin/nginx
    
    • 使用自定義配置文件
     /usr/local/bin/nginx -c ~/my-nginx.conf
    
  • 停止
    • 可以使用系統(tǒng)kill命令停止
    • 立即終止(相當(dāng)于kill命令結(jié)果)
       /usr/local/bin/nginx -s stop
      
    • 平緩的停止服務(wù)(關(guān)閉監(jiān)聽端口,停止接受新的請求;正常的處理完所有已經(jīng)接受到的請求,再停止服務(wù))
       /usr/local/bin/nginx -s quit
      
  • 重讀配置并生效(先檢查配置文件,如果沒有錯誤,將會平緩的停止再次啟動)
    /usr/local/bin/nginx -s reload
    
  • 日志文件回滾(將當(dāng)前文件轉(zhuǎn)移到其他目錄進(jìn)行備份,重新打開日志文件)
     /usr/local/bin/nginx -s reopen
    

運(yùn)行Nginx進(jìn)程

master 單進(jìn)程模式:系統(tǒng)中只有一個進(jìn)程,該進(jìn)程既是master角色又是worker角色
master-worker協(xié)作模式
  • master進(jìn)程管理多個worker進(jìn)程,worker進(jìn)程是繁忙的,真正的進(jìn)行互聯(lián)網(wǎng)的服務(wù),mater只負(fù)責(zé)管理worker進(jìn)程
  • 一般情況下,worker進(jìn)程的數(shù)量和cpu的合數(shù)相等
  • worker進(jìn)程通過共享內(nèi)存,原子操作等進(jìn)程通信機(jī)制來實(shí)現(xiàn)負(fù)載均衡
  • worker可以同時處理的請求數(shù)受限于內(nèi)存大小,不同的worker進(jìn)程之間處理并發(fā)請求幾乎是沒有同步鎖限制,他們不會進(jìn)入睡眠狀態(tài)


    2.jpg

配置的通用語法

  • 配置項注釋 : #
  • 配置單位
    • 空間相關(guān)單位 K/k(表示KB) M/m(表示MB)
    • 時間相關(guān)單位 ms(毫秒) s(秒) m(分鐘) h(小時) d(天) w(周) M(月,包含30天) y(年,包含365天)

配置文件分析

文件主要結(jié)構(gòu)
main
events {
}
http {
    server {
        location {
          }
    }
 }
  • main 只要控制Nginx子進(jìn)程所屬用戶和用戶組、派生子進(jìn)程數(shù)、錯誤日志和級別,pid位置,子進(jìn)程的優(yōu)先級,進(jìn)程對應(yīng)的CPU,進(jìn)程可以打開文件描述符數(shù)目等
  • events 控制Nginx連接方式
  • http 處理http請求的主要配置塊
  • server 主機(jī)配置塊,可以用于配置多個虛擬主機(jī)
  • location server中對應(yīng)目錄級別的控制塊
main 相關(guān)配置
  • worker進(jìn)程數(shù)
    worker_process num
    
  • 設(shè)置用戶和組
    • master進(jìn)程以root權(quán)限運(yùn)行,worker進(jìn)程默認(rèn)情況下以nobody用戶運(yùn)行(原因在于nobody用戶是一個不能登錄的賬號,worker進(jìn)程用戶權(quán)限越低,服務(wù)器安全系數(shù)越高)
    • 配置方式
       user nuser ngroup
      
events相關(guān)配置
  • 每個worker的處理并發(fā)最大連接數(shù)
    worker_connections num
    
http相關(guān)配置
  • include 用于引入配置文件
  • default_type 設(shè)置默認(rèn)的文件類型
  • sendfile 默認(rèn)值是on,表示開啟高效的文件傳輸模式
server相關(guān)配置
  • listen 監(jiān)聽端口,默認(rèn)值是80
  • error_page 自定義錯誤頁面
    • 基于錯誤碼轉(zhuǎn)到本地頁面
    error_page 404 /404.html;
    error_page 500 502 /50.html;
    
    • 基于錯誤碼轉(zhuǎn)到在線資源
    error_page 403 http://test.com/forbidden.html;
    
    • 錯誤碼進(jìn)行轉(zhuǎn)換
     error_page 401=200 /404.html
    
  • server_name
    • 配置方式
        server_name name[ name...]
      
    • 說明
      • server_name后面可以配置多個名稱
      • 處理HTTP請求時,nginx將取出header中host信息,與每一個name進(jìn)行匹配,其中優(yōu)先級如下
        1. 名稱完全匹配 如 www.test.com
        2. 選擇通配符在前面的 如*.test.com
        3. 選擇通配符在后面的 如 www.test.*
        4. 最后選擇正則表達(dá)式匹配的
        5. 當(dāng)全部無法匹配時,將會使用默認(rèn)server
location相關(guān)配置
  • root 這是主機(jī)站點(diǎn)的根目錄位置
  • index 指定默認(rèn)的索引文件
  • 配置匹配地址
    • location[=||*|^~|@]/uri/{...}
    • location根據(jù)用戶請求中的uri來進(jìn)行配置匹配,如果匹配采用location塊中配置處理請求
    • 匹配規(guī)則
      • =表示把uri作為字符串,以便與參數(shù)進(jìn)行完全匹配
      • ~表示匹配URI是字母是大小寫敏感的(可以使用正則表達(dá)式)
      • ~*表示匹配URI時忽略字母大小寫(可以使用正則表達(dá)式)
      • ^~表示匹配URI時只需要期前半部分與uri匹配即可
      • @表示僅僅用于nginx服務(wù)內(nèi)部請求之間的重定向
      • 當(dāng)匹配多個值時,以一個匹配優(yōu)先
  • root/alias 指定本地文件
    • 兩者區(qū)別:root是在uri前面直接加路徑(root/uri);alias是匹配部分的替換
      location /img/ {
           alias /var/www/image/;
       }
     location /img2/ {
           root /var/www/image/
      }
    
    當(dāng)請求/img/1.png => /var/www/image/1.png
    當(dāng)請求/img2/1.png => /var/www/image/img2/1.png
權(quán)限控制
  • 默認(rèn)提供了allow和deny兩種控制模式
  • 權(quán)限指令后面加可以使用ip,ip段和all
  • 注意事項
    • 單個IP范圍最小,all范圍最大
    • 在同一個塊中,同一個IP或IP段存在多個權(quán)限指令時,先出現(xiàn)的優(yōu)先級最高
    • 當(dāng)多個塊 中,都出現(xiàn)權(quán)限控制指令,內(nèi)層的權(quán)限高于外層權(quán)限
  • 可以使用的塊
    • http
    • server
  • 禁止所有
    deny all
    
  • 只允許指定用戶訪問
    allow 192.168.1.1
    deny all
    
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 配置運(yùn)行Nginx服務(wù)器用戶(組) 用于配置運(yùn)行Nginx服務(wù)器用戶(組)的指令是user,其語法格式為: use...
    吃瓜的東閱讀 4,690評論 0 41
  • 上一篇《WEB請求處理一:瀏覽器請求發(fā)起處理》,我們講述了瀏覽器端請求發(fā)起過程,通過DNS域名解析服務(wù)器IP,并建...
    七寸知架構(gòu)閱讀 81,808評論 21 356
  • 1.簡介: ? Nginx:engine X ,2002年,開源,商業(yè)版? http協(xié)議:web服務(wù)器(類似于ht...
    尛尛大尹閱讀 2,021評論 0 3
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,711評論 19 139
  • 良人猶美人閱讀 163評論 2 1

友情鏈接更多精彩內(nèi)容