nginx已經成為主流的靜態web容器、**器、cache。
在web容器上完全超越apache、在**上代替傳統硬體裝置、在cache已經可以媲美squid。加之大量的開源社群不斷地貢獻,使nginx功能不斷完善和強大,已經有逐步成為統一平台的趨勢。
nginx配置的核心:server模組
解釋各個引數:
1.server {} 虛機模組,乙個server代表乙個站點,或者說乙個虛機。
server_name a.test.com; 機器名稱,或者說是站點名稱,該名稱建議為實際的網域名稱。配置後該網域名稱可以用來直接訪問站點。此處也可以配置多個網域名稱用以訪問,以空格分隔。
2/listen 80; 監聽埠,預設使用80。
3.access_log 訪問日誌
4.error_log 錯誤日誌
反向**服務,可將客戶端的請求**給後端特定伺服器,拿到請求結果後,再返回給客戶端。
使用乙個網域名稱**後端多個站點內容;
隱藏後端伺服器;
增加快取;
為後端伺服器做七層負載均衡。
例如:nginx的配置檔案如下
www.test.com站點,該站點模擬對外公布的唯一位址。
向外提供服務,向內做負載均衡。該站點不需要使用root引數,但是需要增加location引數。
location在nginx中匹配uri中的某個部分,匹配後做出{}中規定的動作。這些動作有可能包括proxy_pass**,有可能包括rewrite,也會包括一切功能引數。
這裡的含義是,匹配uri中含有「/a」的訪問,反向**給a.test.com;匹配uri中含有「/b」的訪問,反向**給b.test.com。
絕對路徑:
有這個符號的情況下,匹配的內容 不帶到後端伺服器。www.test.com會到other.test.com目錄下查詢/other後面的內容。也就是不會將/other**走。
進行相對**
相對路徑:
這種情況下,匹配的內容 一起帶到後端伺服器 ,www.test.com直接到other.test.com目錄下查詢uri中的內容。
這種情況下,**網域名稱和實際網域名稱後面的uri是一致的,對於排查問題和故障都有一定幫助,更加明晰。
進行絕對**
負載均衡配置:
upstream中配置後端參與輪詢的服務。
下面的location中直接使用全**,通常會是這樣的配置,並且使用upstream名稱代替實際的網域名稱。
在做負載均衡時,通常要加入以下引數:
client_max_body_size 50m; #緩衝區**緩衝使用者端請求的最大位元組數,可以理解為儲存到本地再傳給使用者
client_body_buffer_size 256k;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
proxy_connect_timeout 300s; #nginx跟後端伺服器連線超時時間(**連線超時)
proxy_read_timeout 300s; #連線成功後,後端伺服器響應時間(**接收超時)
proxy_send_timeout 300s;
proxy_buffer_size 64k; #設定**伺服器(nginx)儲存使用者頭資訊的緩衝區大小
proxy_buffers 4 32k; #proxy_buffers緩衝區,網頁平均在32k以下的話,這樣設定
proxy_busy_buffers_size 64k; #高負荷下緩衝大小(proxy_buffers*2)
proxy_temp_file_write_size 64k; #設定快取資料夾大小,大於這個值,將從upstream伺服器傳遞請求,而不緩衝到磁碟
proxy_ignore_client_abort on; #不允許**端主動關閉連線
proxy_redirect off; #重要,可以使host中請求的網域名稱保持傳遞給後端
proxy_set_header host $host;
proxy_set_header x-real-ip $remote_addr;
proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
FinalHttp的簡要介紹與使用
在之前的一篇文章中,我們簡單的介紹了下finalbitmap的使用,這一篇文章將繼續介紹afinal開發框架的使用,這一次的主角是finalhttp。finalhttp,顧名思義,就是乙個用於實現客戶端與伺服器之間網路通訊的類,這個類主要通過對apache的httpclient開源專案進行封裝,實現...
git簡要介紹與使用
git是一種分布式版本控制工具 安裝完成後會生成三個快捷方式 配置 git的配置都是以檔案形式儲存的,具體檢視和位置如下 系統配置檔案 git etc gitconfig 使用者配置檔案都儲存在 userprofile gitconfig 檢視所有配置 git config l 檢視系統配置 git...
crontab 的簡要介紹
1 概述 crontab 用於週期性被執行的指令,該指令從標準裝置輸入指令,並將指令存放在crontab檔案中,供之後讀取和執行。etc crontab 存放被定期執行的指令 etc cron.deny 不能使用crontab的使用者 etc cron.allow 可以使用crontab的使用者 以...