簡要介紹nginx的使用

2021-10-03 12:10:22 字數 2533 閱讀 9568

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的使用者 以...