搜尋
首頁運維Nginxnginx設定檔結構是什麼

nginx常用功能

1、http代理,反向代理:作為web伺服器最常用的功能之一,尤其是反向代理。

這裡我給來2張圖,對正向代理與反響代理做個詮釋,具體細節,大家可以翻閱下資料。

nginx設定檔結構是什麼

nginx在做反向代理時,提供效能穩定,並且能夠提供配置靈活的轉送功能。 nginx可以根據不同的正規匹配,採取不同的轉發策略,例如圖片檔案結尾的走文件伺服器,動態頁面走web伺服器,只要你正則寫的沒問題,又有相對應的伺服器解決方案,你就可以隨心所欲的玩。且nginx對回傳結果進行錯誤頁跳轉,異常判斷等。如果被分發的伺服器有異常,他可以將請求重新轉發給另外一台伺服器,然後自動移除異常伺服器。

2、負載平衡

nginx提供的負載平衡策略有2種:內建策略和擴充策略。內建策略為輪詢,加權輪詢,ip hash。擴展策略,就天馬行空,只有你想不到的沒有他做不到的啦,你可以參考所有的負載平衡演算法,給他一一找出來做下實現。

上3個圖,理解這三種負載平衡演算法的實作

nginx設定檔結構是什麼

ip hash演算法,對客戶端請求的ip進行hash操作,然後根據hash結果將同一個客戶端ip的請求分發給同一台伺服器處理,可以解決session不共享的問題。

nginx設定檔結構是什麼

3、web快取

nginx可以對不同的檔案做不同的快取處理,配置靈活,並且支援fastcgi_cache,主要用於對fastcgi的動態程式進行快取。配合第三方的ngx_cache_purge,對制定的url快取內容可以的進行增刪管理。

4、nginx相關位址

原始碼:

官網:

nginx設定檔結構

##如果你下載好啦,你的安裝文件,不妨打開conf資料夾的nginx.conf文件,nginx伺服器的基礎配置,預設的配置也存放在此。

在nginx.conf的註解符號位元

#nginx檔案的結構,這個對剛入門的同學,可以多看兩眼。

預設的config

#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid    logs/nginx.pid;
events {
  worker_connections 1024;
}
http {
  include    mime.types;
  default_type application/octet-stream;
  #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  #         '$status $body_bytes_sent "$http_referer" '
  #         '"$http_user_agent" "$http_x_forwarded_for"';
  #access_log logs/access.log main;
  sendfile    on;
  #tcp_nopush   on;
  #keepalive_timeout 0;
  keepalive_timeout 65;
  #gzip on;
  server {
    listen    80;
    server_name localhost;
    #charset koi8-r;
    #access_log logs/host.access.log main;
    location / {
      root  html;
      index index.html index.htm;
    }
    #error_page 404       /404.html;
    # redirect server error pages to the static page /50x.html
    #
    error_page  500 502 503 504 /50x.html;
    location = /50x.html {
      root  html;
    }
    # proxy the php scripts to apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #  proxy_pass  http://127.0.0.1;
    #}
    # pass the php scripts to fastcgi server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #  root      html;
    #  fastcgi_pass  127.0.0.1:9000;
    #  fastcgi_index index.php;
    #  fastcgi_param script_filename /scripts$fastcgi_script_name;
    #  include    fastcgi_params;
    #}
    # deny access to .htaccess files, if apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #  deny all;
    #}
  }
  # another virtual host using mix of ip-, name-, and port-based configuration
  #
  #server {
  #  listen    8000;
  #  listen    somename:8080;
  #  server_name somename alias another.alias;
  #  location / {
  #    root  html;
  #    index index.html index.htm;
  #  }
  #}
  # https server
  #
  #server {
  #  listen    443 ssl;
  #  server_name localhost;
  #  ssl_certificate   cert.pem;
  #  ssl_certificate_key cert.key;
  #  ssl_session_cache  shared:ssl:1m;
  #  ssl_session_timeout 5m;
  #  ssl_ciphers high:!anull:!md5;
  #  ssl_prefer_server_ciphers on;
  #  location / {
  #    root  html;
  #    index index.html index.htm;
  #  }
  #}
}

nginx檔案結構

...       #全局块
events {     #events块
  ...
}
http   #http块
{
  ...  #http全局块
  server    #server块
  { 
    ...    #server全局块
    location [pattern]  #location块
    {
      ...
    }
    location [pattern] 
    {
      ...
    }
  }
  server
  {
   ...
  }
  ...   #http全局块
}

1、全域區塊:設定影響nginx全域的指令。一般有運行nginx伺服器的使用者群組,nginx進程pid存放路徑,日誌存放路徑,設定檔引入,允許產生worker process數等。

2、events區塊:配置影響nginx伺服器或與使用者的網路連線。有每個進程的最大連接數,選取哪種事件驅動模型處理連接請求,是否允許同時接受多個網路連接,開啟多個網路連接序列化等。

3、http區塊:可以嵌套多個server,配置代理,緩存,日誌定義等絕大多數功能和第三方模組的配置。如文件引入,mime-type定義,日誌自定義,是否使用sendfile傳輸文件,連接超時時間,單連接請求數等。

4、server區塊:配置虛擬主機的相關參數,一個http中可以有多個server。

5、location區塊:設定請求的路由,以及各種頁面的處理情況。

下面給大家上一個設定文件,作為理解,同時也配入我搭建的一台測試機中,給大家範例。

########### 每个指令必须有分号结束。#################
#user administrator administrators; #配置用户或者组,默认为nobody nobody。
#worker_processes 2; #允许生成的进程数,默认为1
#pid /nginx/pid/nginx.pid;  #指定nginx进程运行文件存放地址
error_log log/error.log debug; #制定日志路径,级别。这个设置可以放入全局块,http块,server块,级别以此为:debug|info|notice|warn|error|crit|alert|emerg
events {
  accept_mutex on;  #设置网路连接序列化,防止惊群现象发生,默认为on
  multi_accept on; #设置一个进程是否同时接受多个网络连接,默认为off
  #use epoll;   #事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
  worker_connections 1024;  #最大连接数,默认为512
}
http {
  include    mime.types;  #文件扩展名与文件类型映射表
  default_type application/octet-stream; #默认文件类型,默认为text/plain
  #access_log off; #取消服务日志  
  log_format myformat '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for'; #自定义格式
  access_log log/access.log myformat; #combined为日志格式的默认值
  sendfile on;  #允许sendfile方式传输文件,默认为off,可以在http块,server块,location块。
  sendfile_max_chunk 100k; #每个进程每次调用传输数量不能大于设定的值,默认为0,即不设上限。
  keepalive_timeout 65; #连接超时时间,默认为75s,可以在http,server,location块。
  upstream mysvr {  
   server 127.0.0.1:7878;
   server 192.168.10.121:3333 backup; #热备
  }
  error_page 404 https://www.baidu.com; #错误页
  server {
    keepalive_requests 120; #单连接请求上限次数。
    listen    4545;  #监听端口
    server_name 127.0.0.1;  #监听地址    
    location ~*^.+$ {    #请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。
      #root path; #根目录
      #index vv.txt; #设置默认页
      proxy_pass http://mysvr; #请求转向mysvr 定义的服务器列表
      deny 127.0.0.1; #拒绝的ip
      allow 172.18.5.54; #允许的ip      
    } 
  }
}

上面是nginx的基本配置,需要注意的有以下幾點:

1、1.$remote_addr 與$http_x_forwarded_for 用來記錄客戶端的ip位址;2.$remote_user :用來記錄客戶端使用者名稱;3.$time_local :用來記錄存取時間與時區;4.$request : 用來記錄請求的url與http協定;

  5. $status : 用來記錄請求狀態;成功是200, 6.$body_bytes_s ent :記錄發送給客戶端文件主體內容大小;7.$http_referer :用來記錄從那個頁面鏈接訪問過來的; 8.$http_user_agent :記錄客戶端瀏覽器的相關資訊;

2、驚群現象:一個網路連接到來,多個睡眠的進程被同事叫醒,但只有一個進程能獲得鏈接,這樣會影響系統性能。

3、每個指令必須有分號結束。

以上是nginx設定檔結構是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:亿速云。如有侵權,請聯絡admin@php.cn刪除
雷軍分享新年願望:交付30萬輛車、健身房打卡100次雷軍分享新年願望:交付30萬輛車、健身房打卡100次Apr 13, 2025 pm 11:54 PM

新年伊始,雷軍抖音跨年直播分享了2025年的三個新年願望,這場長達四個半小時的直播吸引了眾多關注。雷軍的三大願望分別是:第一,實現30萬輛汽車交付目標,緩解壓力,不再被進度追趕。第二,擁有更多旅行時間,欣賞各地美景、品嚐特色美食,並結合工作進行汽車測試。第三,堅持健身,計劃在健身房打卡100次,強身健體。雷軍在直播中坦言,2024年奔波於各地,行程安排緊湊,往往只能短暫停留,難以深入體驗當地文化。例如,在德國紐北賽道,他僅停留了8個小時。因此,在新的一年裡,他希望能夠更好地平衡工作與生活,在旅行

年度口碑佳作!九號公司微電影《記憶奇旅》榮膺多項權威大獎年度口碑佳作!九號公司微電影《記憶奇旅》榮膺多項權威大獎Apr 13, 2025 pm 11:51 PM

九號公司攜手品牌代言人易烊千璽打造的微電影《記憶奇旅》,在2024年榮獲多項權威媒體大獎,成為年度口碑佳作。這部作品以獨特的敘事風格、精湛的製作和真摯的情感,贏得了業界的高度讚譽。 2024年度獲獎榮譽:2024金觸點全球商業創新大獎-年度影視廣告2024中國廣告營銷大獎-娛樂營銷組銀獎2024TopDigital創新營銷獎-影視製作類金獎2024上海國際廣告節-微電影銀獎2024第十一屆中國創新傳播大獎-整合營銷類銀獎WISE2024商業之王-年度案例第31屆中國國際廣告節2024數字營銷實戰大

創新引領,再獲殊榮! AGON斬獲PConline2024智臻科技獎創新引領,再獲殊榮! AGON斬獲PConline2024智臻科技獎Apr 13, 2025 pm 11:48 PM

近日,PConline2024智臻科技獎正式揭曉,AGON愛攻QD-OLED電競顯示器AG326UD榮獲“年度技術創新”獎項。此項殊榮不僅代表了業界對其技術優勢與市場表現的高度認可,更充分體現了AGON愛攻在電競顯示器技術領域的創新能力和卓越成就。 01.瞰科技未來,品技術革命PConline智臻科技獎的權威含金量作為科技行業的風向標,PConline智臻科技獎憑藉其嚴謹的評審體系和深度的行業分析,成功贏得廣泛的行業認可。該獎項始終致力於表彰推動科技行業發展的優秀產品和品牌,涵蓋從技

索尼證實PS5 Pro使用特製GPU 與AMD合作研發AI可能性索尼證實PS5 Pro使用特製GPU 與AMD合作研發AI可能性Apr 13, 2025 pm 11:45 PM

SonyInteractiveEntertainment(SIE,索尼互动娱乐)首席架构师MarkCerny公开更多次世代主机PlayStation5Pro(PS5Pro)硬体细节,包括性能升级的AMDRDNA2.x架构GPU,以及与AMD合作代号「Amethyst」的机器学习/人工智慧计划。PS5Pro性能提升的重点仍集中在更强大的GPU、先进的光线追踪与AI驱动的PSSR超解析度功能等3大支柱上。GPU採用客制化的AMDRDNA2架构,索尼将其命名为RDNA2.x,它拥有部分RDNA3架构才

終於改了!微軟Windows搜索功能將迎來全新更新終於改了!微軟Windows搜索功能將迎來全新更新Apr 13, 2025 pm 11:42 PM

微軟針對Windows搜索功能的改進,目前已在歐盟地區部分WindowsInsider頻道展開測試。此前,整合後的Windows搜索功能飽受用戶詬病,體驗欠佳。此次更新將搜索功能拆分為本地搜索和基於Bing的網絡搜索兩部分,以提升用戶體驗。新版搜索界面默認進行本地文件搜索,如需進行網絡搜索,需點擊“MicrosoftBingWebSearch”標籤進行切換。切換後,搜索欄將顯示“MicrosoftBingWebSearch:”,用戶可在此輸入關鍵詞。此舉有效避免了本地搜索結果與Bing搜索結果混

熟練地烤好了!怪物獵人推出20週年烤肉計時器與暖水壺熟練地烤好了!怪物獵人推出20週年烤肉計時器與暖水壺Apr 13, 2025 pm 11:39 PM

為慶祝卡普空《怪物獵人》系列20週年,寶島社推出了一款別具匠心的雜誌套裝——《怪物獵人》主題燒烤計時器及隨行杯。該套裝將於12月27日在日本全國全家便利店發售,售價3498日元。這款雜誌套裝最大的亮點在於其互動式燒烤計時器,完美復刻了系列遊戲中的經典燒烤場景。計時器採用舊版烤肉工具的設計,配有LED火焰燈效和遊戲BGM,讓您在實際燒烤過程中也能體驗到狩獵的樂趣。旋轉手柄模擬翻轉烤肉,成功烤熟後更會播放“烤好了!”的語音提示。計時器尺寸約為9.5cm(高)x10.7cm(寬)x8cm(深),內置L

太懂用戶了!小米SU7車主可免費領Are U OK氣門芯帽太懂用戶了!小米SU7車主可免費領Are U OK氣門芯帽Apr 13, 2025 pm 11:36 PM

小米汽車一周年慶典,為車主送上新年大禮!繼去年交付量突破13萬輛後,小米汽車官方微博宣布,將為每位小米SU7車主及準車主贈送雷軍經典語錄“AreyouOK?”主題氣門芯帽,數量有限,免費領取!活動時間:2024年12月28日下午4點至2025年1月20日23:59:59。在2024年12月31日23:59:59前購車或完成訂單的用戶,即可免費獲得一套四件套“AreyouOK?”氣門芯帽。這款氣門芯帽於今年9月首發,採用亮黃色PVC和黃銅材質製成,黃銅芯直接嵌入,確保行駛安全,不易脫落。用途廣泛,

HDMI 2.2標準有望2025前夕公佈! 8K分辨率即將到來HDMI 2.2標準有望2025前夕公佈! 8K分辨率即將到來Apr 13, 2025 pm 11:33 PM

據報導,HDMI2.2標準有望在2025年CES展會前夕正式發布,HDMIForum計劃於1月6日公佈這一新一代視頻信號傳輸協議規範。 2017年發布的HDMI2.1標準,最大帶寬為48Gbps,支持4K144Hz和8K30Hz視頻傳輸,結合DSC技術最高可達10K120Hz。預計HDMI2.2將大幅提升帶寬,支持更高分辨率和刷新率,並採用新型線材。雖然具體規格尚未公開,但HDMI2.2勢必超越HDMI2.1的48Gbps帶寬和10240*4320分辨率限制。鑑於DisplayPort2.1在20

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器