架構師之路 nginx的基礎學習

2021-10-01 19:40:09 字數 3203 閱讀 5929

sudo apt-get install nginx

主要由6個部分組成:

main:用於進行nginx全域性資訊的配置

events:用於nginx工作模式的配置

http:用於進行http協議資訊的一些配置

server:用於進行伺服器訪問資訊的配置

location:用於進行訪問路由的配置

upstream:用於進行負載均衡的配置

基礎配置

sendfile on:配置on讓sendfile發揮作用,將檔案的回寫過程交給資料緩衝去去完成,而不是放在應用中完成,這樣的話在效能提公升有有好處

tc_nopush on:讓nginx在乙個資料報中傳送所有的標頭檔案,而不是乙個乙個單獨發

tcp_nodelay on:讓nginx不要快取資料,而是一段一段傳送,如果資料的傳輸有實時性的要求的話可以配置它,傳送完一小段資料就立刻能得到返回值,但是不要濫用哦

keepalive_timeout 10:給客戶端分配連線超時時間,伺服器會在這個時間過後關閉連線。一般設定時間較短,可以讓nginx工作持續性更好

client_header_timeout 10:設定請求頭的超時時間

client_body_timeout 10:設定請求體的超時時間

limit_conn_zone $binary_remote_addr zone=addr:5m :設定用於儲存各種key的共享記憶體的引數,

limit_conn addr 100: 給定的key設定最大連線數

include /etc/nginx/mime.types:指定在當前檔案中包含另乙個檔案的指令

type_hash_max_size 2048:混淆資料,影響三列衝突率,值越大消耗記憶體越多,雜湊key衝突率會降低,檢索速度更快;值越小key,占用記憶體較少,衝突率越高,檢索速度變慢

日誌配置

access_log logs/access.log:設定儲存訪問記錄的日誌

error_log logs/error.log:設定儲存記錄錯誤發生的日誌

ssl證書加密

ssl_protocols:指令用於啟動特定的加密協議,nginx在1.1.13和1.0.12版本後預設是ssl_protocols sslv3 tlsv1 tlsv1.1 tlsv1.2,tlsv1.1與tlsv1.2要確保openssl >= 1.0.1 ,sslv3 現在還有很多地方在用但有不少被攻擊的漏洞。

ssl prefer server ciphers:設定協商加密演算法時,優先使用我們服務端的加密套件,而不是客戶端瀏覽器的加密套件

壓縮配置

gzip 是告訴nginx採用gzip壓縮的形式傳送資料。這將會減少我們傳送的資料量。

gzip_disable 為指定的客戶端禁用gzip功能。我們設定成ie6或者更低版本以使我們的方案能夠廣泛相容。

gzip_static 告訴nginx在壓縮資源之前,先查詢是否有預先gzip處理過的資源。這要求你預先壓縮你的檔案(在這個例子中被注釋掉了),從而允許你使用最高壓縮比,這樣nginx就不用再壓縮這些檔案了(想要更詳盡的gzip_static的資訊,這裡)。

gzip_proxied 允許或者禁止壓縮基於請求和響應的響應流。我們設定為any,意味著將會壓縮所有的請求。

gzip_min_length 設定對資料啟用壓縮的最少位元組數。如果乙個請求小於1000位元組,我們最好不要壓縮它,因為壓縮這些小的資料會降低處理此請求的所有程序的速度。

gzip_comp_level 設定資料的壓縮等級。這個等級可以是1-9之間的任意數值,9是最慢但是壓縮比最大的。我們設定為4,這是乙個比較折中的設定。

gzip_type 設定需要壓縮的資料格式。上面例子中已經有一些了,你也可以再新增更多的格式。

檔案快取配置

open_file_cache 開啟快取的同時也指定了快取最大數目,以及快取的時間。我們可以設定乙個相對高的最大時間,這樣我們可以在它們不活動超過20秒後清除掉。

open_file_cache_valid 在open_file_cache中指定檢測正確資訊的間隔時間。

open_file_cache_min_uses 定義了open_file_cache中指令引數不活動時間期間裡最小的檔案數。

open_file_cache_errors 指定了當搜尋乙個檔案時是否快取錯誤資訊,也包括再次給配置中新增檔案。我們也包括了伺服器模組,這些是在不同檔案中定義的。如果你的伺服器模組不在這些位置,你就得修改這一行來指定正確的位置。

基本配置

location /
反向**

location /
uwsgi配置

架構師之路

隨著經驗能力的增長,程式的程式設計習慣也在發生著改變,以下是我個人程式設計習慣的改變。1級 思考一段時間,寫一段 2級 用圖形幫助思考,然後寫 3級 將思考過程寫成注釋,然後再寫 4級 用圖形幫助思考,然後一邊寫注釋,一邊寫 5級 思考過程中增加對不確定技術點的測試。6級 將思考過程寫在記事本裡,將...

架構師之路

方 秒殺系統架構優化思路 分布式id生成器 網際網路架構,如何進行容量設計 執行緒數究竟設多少合理 單點系統架構的可用性與效能優化 關於負載均衡的一切 異構伺服器負載均衡及過載保護 lvs為何不能完全替代dns輪詢 究竟啥才是網際網路架構 高併發 究竟啥才是網際網路架構 高可用 100億資料1萬屬性...

架構師之路

架構的定義 我們來看看軟體架構的一般定義 程式和計算系統軟體體系結構是指系統的乙個或多個結構。該結構包括軟體的構建,構建的外部可見屬性以及它們之間的相互關係。該體系結構不是可操作的軟體。具體來說,這是乙個表示式,它使軟體工程師能夠 分析滿足監管要求的設計有效性。在設計更改相對容易的階段,請考慮架構的...