<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # nginx.conf配置文件解析 - 定義Nginx運行的用戶和用戶組 - user www www; - nginx進程數,建議設置為等于CPU總核心數。 - worker_processes 8; - 全局錯誤日志定義類型,[ debug | info | notice | warn | error | crit ] - error_log /var/log/nginx/error.log info; - 進程文件 - pid /var/run/nginx.pid; - 一個nginx進程打開的最多文件描述符數目,理論值應該是最多打開文件數(系統的值ulimit -n)與nginx進程數相除,但是nginx分配請求并不均勻,所以建議與ulimit -n的值保持一致。 - worker_rlimit_nofile 65535; - 工作模式與連接數上限 - events { 參考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ];epoll模型是Linux 2.6以上版本內核中的高性能網絡I/O模型,如果跑在FreeBSD上面,就用kqueue模型。 use epoll; 單個進程最大連接數(最大連接數=連接數*進程數) worker_connections 65535; } - event下的一些配置及其意義 單個后臺worker process進程的最大并發鏈接數 worker_connections 1024; 并發總數是 worker_processes 和 worker_connections 的乘積即 max_clients = worker_processes * worker_connections 在設置了反向代理的情況下,max_clients = worker_processes * worker_connections / 4 為什么上面反向代理要除以4,應該說是一個經驗值; 根據以上條件,正常情況下的Nginx Server可以應付的最大連接數為:4 *8000 =32000; worker_connections 值的設置跟物理內存大小有關; 因為并發受IO約束,max_clients的值須小于系統可以打開的最大文件數; 而系統可以打開的最大文件數和內存大小成正比,一般1GB內存的機器上可以打開的文件數大約是10萬左右; 我們來看看360M內存的VPS可以打開的文件句柄數是多少: $ cat /proc/sys/fs/file-max 輸出 34336; 32000 < 34336,即并發連接總數小于系統可以打開的文件句柄總數,這樣就在操作系統可以承受的范圍之內; 所以,worker_connections 的值需根據 worker_processes 進程數目和系統可以打開的最大文件總數進行適當地進行設置;使得并發總數小于操作系統可以打開的最大文件數目,其實質也就是根據主機的物理CPU和內存進行配置。當然,理論上的并發總數可能會和實際有所偏差,因為主機還有其他的工作進程需要消耗系統資源。 ulimit -SHn 65535 - http下的一些配置及其意義 設定http服務器 - http { include mime.types; #文件擴展名與文件類型映射表 default_type application/octet-stream; #默認文件類型 charset utf-8; #默認編碼 server_names_hash_bucket_size 128; #服務器名字的hash表大小 client_header_buffer_size 32k; #上傳文件大小限制 large_client_header_buffers 4 64k; #設定請求緩 client_max_body_size 8m; #設定請求緩 sendfile on; #開啟高效文件傳輸模式,sendfile指令指定nginx是否調用sendfile函數來輸出文件,對于普通應用設為 on,如果用來進行下載等應用磁盤IO重負載應用,可設置為off,以平衡磁盤與網絡I/O處理速度,降低系統的負載。注意:如果圖片顯示不正常把這個改成off。 autoindex on; #開啟目錄列表訪問,合適下載服務器,默認關閉。 tcp_nopush on; #防止網絡阻塞 tcp_nodelay on; #防止網絡阻塞 keepalive_timeout 120; #長連接超時時間,單位是秒 - gzip的一些配置及其意義 gzip模塊設置 gzip on; #開啟gzip壓縮輸出 gzip_min_length 1k; #最小壓縮文件大小 gzip_buffers 4 16k; #壓縮緩沖區 gzip_http_version 1.0; #壓縮版本(默認1.1,前端如果是squid2.5請使用1.0) gzip_comp_level 2; #壓縮等級 gzip_types text/plain application/x-javascript text/css application/xml;#壓縮類型,默認就已經包含text/html,所以下面就不用再寫了,寫上去也不會有問題,但是會有一個warn。 gzip_vary on;#limit_zone crawler $binary_remote_addr 10m; #開啟限制IP連接數的時候需要使用 - 虛擬主機一些配置及其意義 server { # 監聽端口 listen 80; # 域名可以有多個,用空格隔開 server_name www.yjscloud.site yjscloud.site; index index.html index.htm index.jsp; root /data/www/yjscloud; location ~ .*\.(php|php5)?$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.jsp; include fastcgi.conf; } # 什么是虛擬主機 虛擬主機是一種特殊的軟硬件技術,它可以將網絡上的每一臺計算機分成多個虛擬主機,每個虛擬主機可以獨立對外提供www服務,這樣就可以實現一臺主機對外提供多個web服務,每個虛擬主機之間是獨立,互不影響。 ![3-2-2](http://pded8ke3e.bkt.clouddn.com/3-2-2.png) 通過nginx可以實現虛擬主機的配置,nginx支持三種類型的虛擬主機配置, - 1、基于ip的虛擬主機, (一塊主機綁定多個ip地址) ![3-2-5](http://pded8ke3e.bkt.clouddn.com/3-2-5.png) - 2、基于域名的虛擬主機(servername) ![3-2-3](http://pded8ke3e.bkt.clouddn.com/3-2-3.png) - 3、基于端口的虛擬主機(listen如果不寫ip端口模式) ![3-2-4](http://pded8ke3e.bkt.clouddn.com/3-2-4.png) # 配置解析拓展 ## location 映射(ngx_http_core_module) - location [ = | ~ | ~* | ^~ ] uri { ... } * location URI {}: 對當前路徑及子路徑下的所有對象都生效; * location = URI {}: 注意URL最好為具體路徑。 精確匹配指定的路徑,不包括子路徑,因此,只對當前資源生效; - location ~ URI {}: 與 location ~* URI {}: * 模式匹配URI,此處的URI可使用正則表達式,~區分字符大小寫,~*不區分字符大小寫; - location ^~ URI {}: * 不使用正則表達式 * 優先級:= > ^~ > ~|~* > /|/dir/ ## location配置規則 - Directives with the = prefix that match the query exactly. If found, searching stops. - All remaining directives with conventional strings, longest match first. If this match used the ^~ prefix, searching stops. - Regular expressions, in order of definition in the configuration file. - If #3 yielded a match, that result is used. Else the match from #2 is used. - =前綴的指令嚴格匹配這個查詢。如果找到,停止搜索。 - 所有剩下的常規字符串,最長的匹配。如果這個匹配使用^?前綴,搜索停止。 - 正則表達式,在配置文件中定義的順序。 - 如果第3條規則產生匹配的話,結果被使用。否則,如同從第2條規則被使用 - location 的執行邏輯跟 location 的編輯順序無關。 矯正:這句話不全對,“普通 location ”的匹配規則是“最大前綴”,因此“普通 location ”的確與 location 編輯順序無關;但是“正則 location ”的匹配規則是“順序匹配,且只要匹配到第一個就停止后面的匹配”;“普通location ”與“正則 location ”之間的匹配順序是?先匹配普通 location ,再“考慮”匹配正則 location 。注意這里的“考慮”是“可能”的意思,也就是說匹配完“普通 location ”后,有的時候需要繼續匹配“正則 location ”,有的時候則不需要繼續匹配“正則 location ”。兩種情況下,不需要繼續匹配正則 location : * 當普通 location 前面指定了“ ^~ ”,特別告訴 Nginx 本條普通 location 一旦匹配上,則不需要繼續正則匹配; * 當普通location 恰好嚴格匹配上,不是最大前綴匹配,則不再繼續匹配正則
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看