nginx介紹:
nginx無論是對於運維、開發、還是測試來說,都是日常工作需要掌握的乙個知識點.
nginx是乙個高效能的http server和**軟體,它具有高併發、且占用資源少,同時也是乙個比較優秀的**和負載均衡、快取伺服器,它可以執行於多種平台。官網位址為:
web伺服器:高效能的web伺服器軟體,與apache相比,它支援更多的併發連線且占用伺服器資源少,效率高。
反向**或負載均衡伺服器:作為負載均衡伺服器,它可以作為http server或db等伺服器的**伺服器,類似於haproxy**軟體的功能,nginx的**功能相對簡單,效率也不及haproxy,同時它是乙個優秀的郵件**伺服器軟體。
快取伺服器:nginx還可以作為快取伺服器,類似於專業的快取軟體功能。
優點: 高併發:能支援1-2萬甚至是更多的併發連線(靜態小檔案)
記憶體消耗小
可以做http反向**—負載均衡的功能
內建對集群節點伺服器的健康檢查功能,不過功能相對較弱
通過cache外掛程式可以實現快取軟體能夠實現的功能
nginx安裝有附近文件,這裡就不在安裝。
#執行使用者
user www-data;
#nginx程序數,建議和cpu總核心數相同
worker_processes 4;
pid /run/nginx.pid;
#乙個nginx程序開啟的最多檔案描述符數目,理論值應該是最多開啟檔案數(系統的值ulimit -n)與nginx程序數相除,但是nginx分配請求並不均勻,所以建議與ulimit -n的值保持一致。
worker_rlimit_nofile 65535;
#工作模式與連線數上限
events {
#單個程序最大連線數(最大連線數=連線數*程序數)
worker_connections 65535;
#參考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]
###開啟高效檔案傳輸模式,sendfile指令指定nginx是否呼叫sendfile函式來輸出檔案,對於普通應用設為 on,
sendfile on;
#當使用sendfile函式時,tcp_nopush才起作用,它和指令tcp_nodelay是互斥的。
tcp_nopush on;
#設定套接字的tcp_nodelay = on 選項來完成,這樣就禁用了nagle 演算法
tcp_nodelay on;
#客戶端超時時間,這裡不是指整個傳輸過程的時間, 而是指客戶端兩個讀操作之間的時間,即如果客戶端超過這麼長時間沒有讀任何資料,nginx關閉該連線
send_timeout 60;
#設定http頭中的keep-alive
keepalive_timeout 65;
#set the maximum size of the types hash tables
types_hash_max_size 2048;
#隱藏nginx伺服器系統版本等資訊
# server_tokens off;
#指定乙個request可接受的body大小,即請求頭里的content-length. 如果請求body超過該值,nginx返回413("request entity too large")
client_max_body_size 10m;
#客戶端請求頭部的緩衝區大小,這個可以根據你的系統分頁大小來設定,一般乙個請求頭的大小不會超過1k
client_header_buffer_size 4k;
#指定允許為客戶端請求頭最大分配buffer個數和大小.
large_client_header_buffers 8 128k;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
#副檔名與檔案型別對映表
include /etc/nginx/mime.types;
#預設檔案型別
### logging settings
##access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
### gzip settings
###開啟gzip壓縮輸出
gzip on;
#最小壓縮檔案大小
gzip_min_length 1k;
#壓縮緩衝區
gzip_buffers 16 8k;
#壓縮版本
#壓縮等級
gzip_comp_level 6;
#ie6 不壓縮
gzip_disable "msie6";
#enables response header of "vary: accept-encoding".
gzip_vary on;
#nginx作為反向**時,啟用或關閉壓縮上游伺服器返回內容的選項
# gzip_proxied any;
#壓縮型別
### proxy global settings
###是否開啟buffer, 為on時,盡可能從後端讀資料存如buffer, 為off時,收到後端資料立即**給客戶端, 對於long-polling應用,需要關閉proxy_buffering
proxy_buffering on;
#存放後端伺服器返回結果的buffer大小
proxy_buffer_size 4k;
#存放後端伺服器返回結果的buffer 個數和大小, buffer滿時會寫到臨時檔案
proxy_buffers 8 4k;
#可以處於busy狀態的buffer總和,它控制了同時傳輸到客戶端的buffer數量
proxy_busy_buffers_size 16k;
#定義了跟**伺服器連線的超時時間,必須留意這個time out時間不能超過75秒
proxy_connect_timeout 60s;
#headers hash table bucket大小,如果headers名稱大於64字元,需要增加此值
proxy_headers_hash_bucket_size 64;
#headers hash table大小
#指定nginx等待後端返回資料最長時間,該timeout並不是指整個response時間,而是指兩次讀之間的時間
proxy_read_timeout 60s;
#nginx傳送請求到後端最大時間,該timeout並不是指整個傳輸時間,而是指兩次寫之間的時間
proxy_send_timeout 30s;
### open file optimize
##open_file_cache max=102400 inactive=20s;
#指定多長時間檢查一下open_file_cache中檔案的有效性
open_file_cache_valid 60s;
#指定了在open_file_cache指令無效的引數中一定的時間範圍內可以使用的最小檔案數, 如果使用更大的值,檔案描述符在cache中總是開啟狀態
open_file_cache_min_uses 1;
#是否cache搜尋檔案的錯誤
open_file_cache_errors on;
### virtual host configs
##include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
ceres優化器使用方法(自用)
詳見vins 本內容供自己查閱使用 1.構建factor,繼承costfunction或者sizecostfunction函式,在evaluate形參中傳遞要優化的引數parameters,需要計算的參差residuals和jacobians,然後就是計算參差和雅克比矩陣。2.構建ceres pro...
php優化 nginx優化 mysql優化
php優化 1 將類的方法定義為static。2 盡量使用單引號。3 修改php fpm程序數。4 修改單個指令碼最大可使用記憶體。5 大的陣列使用完之後要及時釋放。6 迴圈的時候,制定最大迴圈次數 7 不使用 遮蔽錯誤 8 盡量採用大量的 php 內建函式 9 使用require代替require...
nginx 優化 Nginx 站點目錄
禁止解析指定目錄下的指定程式 location data php php5 sh pl py 根據實際來禁止哪些目錄下的程式,且該配置必須寫在 nginx 解析 php 的配置前面 deny all 禁止訪問指定目錄 location data php php5 sh pl py 根據實際來禁止哪些...