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.confupstream 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...