nginx使用筆記

2022-03-18 12:24:33 字數 2516 閱讀 1322

1. 反向**時攜帶真實ip:

location /

2. 用nginx做web伺服器,如果沒有處理好日誌,日誌檔案可能會很恐怖~10g、20g。可以修改nginx.conf 找到access_log:

access_log /dev/null;

error_log /dev/null;

這樣全部把他們丟到系統的黑洞裡了。不用每時每刻都往系統磁碟瘋狂的讀寫日誌了 還延長硬碟的壽命。修改完,重啟nginx

3. nginx在啟動後,會有乙個master程序和多個worker程序。master程序主要用來管理worker程序,包含:接收來自外界的訊號,向各worker程序傳送訊號,監控worker程序的執行狀態,當worker

程序退出後(異常情況下),會自動重新啟動新的worker程序。而基本的網路事件,則是放在worker程序中來處理了。

4.worker程序的個數是可以設定的,一般我們會設定與機器cpu核數一致,這裡面的原因與nginx的程序模型以及事件處理模型是分不開的。

5.master來管理worker程序,所以我們只需要與master程序通訊就行了。master程序會接收來自外界發來的訊號,再根據訊號做不同的事情。所以我們要控制nginx,只需要通過kill向master程序

動後,就開始接收新的請求,而老的worker在收到來自master的訊號後,就不再接收新的請求,並且在當前程序中的所有未處理完的請求處理完成後,再退出。

6.nginx採用了非同步非阻塞的方式來處理請求,也就是說,nginx是可以同時處理成千上萬個請求的。它們提供了一種機制,讓你可以同時監控多個事件,呼叫他們是阻塞的,但可以設定超時時間,在

超時時間之內,如果有事件準備好了,就返回。這種機制正好解決了我們上面的兩個問題,拿epoll為例(在後面的例子中,我們多以epoll為例子,以代表這一類函式),當事件沒準備好時,放到epoll裡面,

事件準備好了,我們就去讀寫,當讀寫返回eagain時,我們將它再次加入到epoll裡面。這樣,只要有事件準備好了,我們就去處理它,只有當所有事件都沒準備好時,才在epoll裡面等著。與多執行緒相比,

這種事件處理方式是有很大的優勢的,不需要建立執行緒,每個請求占用的記憶體也很少,沒有上下文切換,事件處理非常的輕量級。併發數再多也不會導致無謂的資源浪費(上下文切換)。更多的併發數,

只是會占用更多的記憶體而已。 

7. 常用功能簡單介紹:

1). 反向**

指令說明:proxy_pass

語法:proxy_pass url

location /

2). 負載均衡

upstream

[root@nginx ~]# vim /etc/nginx/nginx.conf

upstream webservers

server

}

a. nginx的負載均衡模組目前支援4種排程演算法,下面進行分別介紹,其中後兩項屬於第三方 排程演算法

b. upstream 支援的狀態引數

注,當負載排程演算法為ip_hash時,後端伺服器在負載均衡排程中的狀態不能是weight和backup。

3). 頁面快取

proxy_cache_path

語法:proxy_cache_path path [levels=number] keys_zone=zone_name:zone_size [inactive=time] [max_size=size];  

proxy_cache

語法:proxy_cache zone_name;

proxy_cache_path /data/nginx/cache/webserver levels=1:2 keys_zone=webserver:20m max_size=1g;

server

}

4). url重寫

server 

}

break

語法:break 

if語法:if (condition)  

return

語法:return code 

rewrite

語法:rewrite regex replacement flag

url重寫可以使用正規表示式

5). 讀寫分離

Nginx 使用筆記

程序 關係 1master n workers 乙個主程序,多個工作程序 conf 配置檔案目錄 fastcgi.conf fastcgi.conf.default fastcgi params fastcgi params.default koi utf koi win mime.types 設定...

nginx使用筆記

參考自官方文件 案例分析 假如有配置檔案 location hi那麼,如果原始請求的 url 是的話,則被 伺服器收到的 url 是什麼?答案是http 被 伺服器網域名稱.com hi。如果配置檔案是這樣 location hi那麼,如果原始請求的 url 是的話,則被 伺服器收到的 url 是什...

Nginx使用筆記

本篇記錄使用nginx的一些tricks。修改配置檔案 nginx預設的web根目錄是 usr share nginx html 一般我們都是習慣的是 var www html。現進行更改,具體操作如下 lz mail sudo cat etc nginx conf.d default.confse...