亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

首頁 運維 Nginx Nginx設(shè)定檔實例分析

Nginx設(shè)定檔實例分析

May 17, 2023 pm 07:25 PM
nginx

nginx常用功能

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

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

Nginx設(shè)定檔實例分析

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

2、負(fù)載平衡

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

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

Nginx設(shè)定檔實例分析

ip hash演算法,對客戶端請求的ip進(jìn)行hash操作,然後根據(jù)hash結(jié)果將同一個客戶端ip的請求分發(fā)給同一臺伺服器處理,可以解決session不共享的問題。

Nginx設(shè)定檔實例分析

3、web快取

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

4、nginx相關(guān)位址

原始碼:

官網(wǎng):

nginx設(shè)定檔結(jié)構(gòu)

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

在nginx.conf的註解符號位元

#nginx檔案的結(jié)構(gòu),這個對剛?cè)腴T的同學(xué),可以多看兩眼。

預(yù)設(shè)的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檔案結(jié)構(gòu)

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

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

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

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

4、server區(qū)塊:配置虛擬主機(jī)的相關(guān)參數(shù),一個http中可以有多個server。

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

下面給大家上一個設(shè)定文件,作為理解,同時也配入我搭建的一臺測試機(jī)中,給大家範(fàn)例。

########### 每個指令必須有分號結(jié)束。#################
#user administrator administrators; #配置用戶或者組,默認(rèn)為nobody nobody。
#worker_processes 2; #允許生成的進(jìn)程數(shù),默認(rèn)為1
#pid /nginx/pid/nginx.pid;  #指定nginx進(jìn)程運行文件存放地址
error_log log/error.log debug; #制定日志路徑,級別。這個設(shè)置可以放入全局塊,http塊,server塊,級別以此為:debug|info|notice|warn|error|crit|alert|emerg
events {
  accept_mutex on;  #設(shè)置網(wǎng)路連接序列化,防止驚群現(xiàn)象發(fā)生,默認(rèn)為on
  multi_accept on; #設(shè)置一個進(jìn)程是否同時接受多個網(wǎng)絡(luò)連接,默認(rèn)為off
  #use epoll;   #事件驅(qū)動模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
  worker_connections 1024;  #最大連接數(shù),默認(rèn)為512
}
http {
  include    mime.types;  #文件擴(kuò)展名與文件類型映射表
  default_type application/octet-stream; #默認(rèn)文件類型,默認(rèn)為text/plain
  #access_log off; #取消服務(wù)日志  
  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為日志格式的默認(rèn)值
  sendfile on;  #允許sendfile方式傳輸文件,默認(rèn)為off,可以在http塊,server塊,location塊。
  sendfile_max_chunk 100k; #每個進(jìn)程每次調(diào)用傳輸數(shù)量不能大于設(shè)定的值,默認(rèn)為0,即不設(shè)上限。
  keepalive_timeout 65; #連接超時時間,默認(rèn)為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; #單連接請求上限次數(shù)。
    listen    4545;  #監(jiān)聽端口
    server_name 127.0.0.1;  #監(jiān)聽地址    
    location ~*^.+$ {    #請求的url過濾,正則匹配,~為區(qū)分大小寫,~*為不區(qū)分大小寫。
      #root path; #根目錄
      #index vv.txt; #設(shè)置默認(rèn)頁
      proxy_pass http://mysvr; #請求轉(zhuǎn)向mysvr 定義的服務(wù)器列表
      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 : 用來記錄存取時間與時區(qū);4.$request : 用來記錄請求的url與http協(xié)定;

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

2、驚群現(xiàn)象:一個網(wǎng)路連接到來,多個睡眠的進(jìn)程被同事叫醒,但只有一個進(jìn)程能獲得鏈接,這樣會影響系統(tǒng)性能。

3、每個指令必須有分號結(jié)束。

以上是Nginx設(shè)定檔實例分析的詳細(xì)內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

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

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

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

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72
NGINX與Apache:性能,可伸縮性和效率 NGINX與Apache:性能,可伸縮性和效率 Apr 19, 2025 am 12:05 AM

NGINX和Apache都是強(qiáng)大的Web服務(wù)器,各自在性能、可擴(kuò)展性和效率上有獨特的優(yōu)勢和不足。 1)NGINX在處理靜態(tài)內(nèi)容和反向代理時表現(xiàn)出色,適合高並發(fā)場景。 2)Apache在處理動態(tài)內(nèi)容時表現(xiàn)更好,適合需要豐富模塊支持的項目。選擇服務(wù)器應(yīng)根據(jù)項目需求和場景來決定。

NGINX與Apache:Web服務(wù)器的比較分析 NGINX與Apache:Web服務(wù)器的比較分析 Apr 21, 2025 am 12:08 AM

NGINX更適合處理高并發(fā)連接,而Apache更適合需要復(fù)雜配置和模塊擴(kuò)展的場景。1.NGINX以高性能和低資源消耗著稱,適合高并發(fā)。2.Apache以穩(wěn)定性和豐富的模塊擴(kuò)展聞名,適合復(fù)雜配置需求。

nginx和apache:了解關(guān)鍵差異 nginx和apache:了解關(guān)鍵差異 Apr 26, 2025 am 12:01 AM

NGINX和Apache各有優(yōu)劣,選擇應(yīng)基於具體需求。 1.NGINX適合高並發(fā)場景,因其異步非阻塞架構(gòu)。 2.Apache適用於需要復(fù)雜配置的低並發(fā)場景,因其模塊化設(shè)計。

php寫完代碼怎麼執(zhí)行 php代碼執(zhí)行的幾種常見方式 php寫完代碼怎麼執(zhí)行 php代碼執(zhí)行的幾種常見方式 May 23, 2025 pm 08:33 PM

PHP代碼可以通過多種方式執(zhí)行:1.使用命令行,直接輸入“php文件名”執(zhí)行腳本;2.通過Web服務(wù)器,將文件放入文檔根目錄並通過瀏覽器訪問;3.在IDE中運行,利用內(nèi)置調(diào)試工具;4.使用在線PHP沙箱或代碼執(zhí)行平臺進(jìn)行測試。

安裝Nginx後配置文件路徑及初始設(shè)置 安裝Nginx後配置文件路徑及初始設(shè)置 May 16, 2025 pm 10:54 PM

了解Nginx的配置文件路徑和初始設(shè)置非常重要,因為它是優(yōu)化和管理Web服務(wù)器的第一步。 1)配置文件路徑通常是/etc/nginx/nginx.conf,使用nginx-t命令可以查找並測試語法。 2)初始設(shè)置包括全局設(shè)置(如user、worker_processes)和HTTP設(shè)置(如include、log_format),這些設(shè)置允許根據(jù)需求進(jìn)行定制和擴(kuò)展,錯誤配置可能導(dǎo)致性能問題和安全漏洞。

linux如何限制用戶資源? ulimit怎麼配置? linux如何限制用戶資源? ulimit怎麼配置? May 29, 2025 pm 11:09 PM

Linux系統(tǒng)通過ulimit命令限制用戶資源,防止資源過度佔用。 1.ulimit是shell內(nèi)置命令,可限製文件描述符數(shù)(-n)、內(nèi)存大?。?v)、線程數(shù)(-u)等,分為軟限制(當(dāng)前生效值)和硬限制(最高上限)。 2.臨時修改直接使用ulimit命令,如ulimit-n2048,但僅對當(dāng)前會話有效。 3.永久生效需修改/etc/security/limits.conf及PAM配置文件,並添加sessionrequiredpam_limits.so。 4.systemd服務(wù)需在unit文件中設(shè)置Lim

Debian Nginx配置技巧有哪些 Debian Nginx配置技巧有哪些 May 29, 2025 pm 11:06 PM

在Debian系統(tǒng)上配置Nginx時,以下是一些實用的技巧:配置文件的基本結(jié)構(gòu)全局設(shè)置部分:定義影響整個Nginx服務(wù)的行為參數(shù),比如工作線程數(shù)量及運行用戶權(quán)限。事件處理部分:決定Nginx如何應(yīng)對網(wǎng)絡(luò)連接,是提升性能的關(guān)鍵配置。 HTTP服務(wù)部分:包含大量與HTTP服務(wù)相關(guān)的設(shè)定,可內(nèi)嵌多個server和location塊。核心配置選項worker_connections:定義每個工作線程所能處理的最大連接數(shù),通常設(shè)為1024。 multi_accept:激活多連接接收模式,增強(qiáng)並發(fā)處理的能力。 s

NGINX的目的:服務(wù)Web內(nèi)容等 NGINX的目的:服務(wù)Web內(nèi)容等 May 08, 2025 am 12:07 AM

nginxserveswebcontentandactsasareverseproxy,loadBalancer和more.1)效率高效的servesstaticContentLikeHtmlandImages.2)itfunctionsasareverseproxybalancer,and andginxenhanceperforfforfforfforfforfforffrenfcaching.4)

See all articles