實(shí)驗(yàn)圖示
---------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------???????
---------------------------------------------------------------------------------------------------------------------------------???????
---------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------???????
---------------------------------------------------------------------------------------------------------------------------------???????
---------------------------------------------------------------------------------------------------------------------------------???????
---------------------------------------------------------------------------------------------------------------------------------
配置解釋
proxy_pass:?
是Nginx的指令,用于指定請(qǐng)求應(yīng)該轉(zhuǎn)發(fā)到的上游服務(wù)器。
http://192.168.88.163:88; 這是上游服務(wù)器的地址和端口。這意味著當(dāng)Nginx收到一個(gè)請(qǐng)求時(shí),它會(huì)將這個(gè)請(qǐng)求轉(zhuǎn)發(fā)到 IP 地址為 192.168.88.163,端口為 80 的服務(wù)器上。
簡而言之,這個(gè)配置告訴 Nginx:當(dāng)收到一個(gè)請(qǐng)求時(shí),不要直接處理它,而是將它轉(zhuǎn)發(fā)到 192.168.88.163 上的 80 端口上。這通常用于將外部流量轉(zhuǎn)發(fā)到內(nèi)部服務(wù)或應(yīng)用上。
proxy_redirect;
用于修改被代理服務(wù)器返回的響應(yīng)頭中的Location和Refresh字段。這個(gè)指令的作用是確保當(dāng)代理服務(wù)器返回一個(gè)重定向響應(yīng)時(shí),重定向的URL對(duì)外部客戶端是有效和可訪問的。
proxy_redirect default;:使用默認(rèn)規(guī)則來處理重定向,即替換重定向URL中的主機(jī)名和端口,使其與當(dāng)前服務(wù)器的主機(jī)名和端口匹配。
proxy_redirect off;:關(guān)閉重定向處理,即不修改重定向URL。
此外,proxy_redirect 指令還支持一些變量和復(fù)雜的匹配規(guī)則,可以根據(jù)需要進(jìn)行配置。
proxy_set_header Host $http_host;
用于設(shè)置轉(zhuǎn)發(fā)請(qǐng)求的頭部信息。用于保持請(qǐng)求的原始頭部信息。?
解釋如下:
proxy_set_header:用于設(shè)置轉(zhuǎn)發(fā)請(qǐng)求的頭部信息。
Host: 這是要設(shè)置的頭部字段的名稱,即 "Host"。
$http_host: 這是一個(gè)變量,表示請(qǐng)求的原始主機(jī)名和端口號(hào)。它通常包含域名和可能的端口號(hào),例如 "example.com:80"。
這個(gè)指令的作用是將請(qǐng)求的主機(jī)頭設(shè)置為原始請(qǐng)求的主機(jī)頭。在反向代理的情況下,這意味著 Nginx 會(huì)將請(qǐng)求轉(zhuǎn)發(fā)到后端服務(wù)器,并將原始的主機(jī)頭信息包含在轉(zhuǎn)發(fā)請(qǐng)求中。
這樣做的原因是,當(dāng)請(qǐng)求通過反向代理時(shí),原始的主機(jī)頭信息可能會(huì)丟失或被修改。通過使用 proxy_set_header Host $http_host; 指令,可以確保后端服務(wù)器接收到正確的原始主機(jī)頭信息,以便正確處理請(qǐng)求。
proxy_set_header X-Real-IP $remote_addr;
?用于設(shè)置轉(zhuǎn)發(fā)請(qǐng)求的頭部信息。用于傳遞客戶端的真實(shí) IP 地址給后端服務(wù)器。
解釋如下:
proxy_set_header: 這是 Nginx 的一個(gè)指令,用于設(shè)置轉(zhuǎn)發(fā)請(qǐng)求的頭部信息。
X-Real-IP: 這是要設(shè)置的頭部字段的名稱,通常用于表示客戶端的真實(shí) IP 地址。
$remote_addr: 這是一個(gè)變量,表示客戶端的 IP 地址。當(dāng) Nginx 作為反向代理時(shí),它將使用這個(gè)變量來設(shè)置 X-Real-IP 頭部字段,以便將客戶端的真實(shí) IP 地址傳遞給后端服務(wù)器。
這個(gè)指令的作用是將客戶端的真實(shí) IP 地址包含在請(qǐng)求的頭部中,以便后端服務(wù)器可以識(shí)別客戶端的真實(shí) IP 地址。這在處理來自反向代理的請(qǐng)求時(shí)非常有用,因?yàn)榭蛻舳说恼鎸?shí) IP 地址可能不會(huì)直接暴露給后端服務(wù)器。通過使用 proxy_set_header X-Real-IP $remote_addr; 指令,可以確保后端服務(wù)器接收到正確的客戶端 IP 地址,以便正確處理請(qǐng)求和日志記錄等操作。
proxy_connect_timeout;
用于設(shè)置代理服務(wù)器與后端服務(wù)器建立連接的超時(shí)時(shí)間。
具體來說,當(dāng)客戶端向 Nginx 發(fā)起請(qǐng)求時(shí),Nginx 會(huì)嘗試與后端服務(wù)器建立連接。如果在proxy_connect_timeout 指定的時(shí)間內(nèi)無法建立連接,Nginx 將返回一個(gè)錯(cuò)誤給客戶端。這個(gè)指令的單位是秒,默認(rèn)值通常為 60 秒。
通過調(diào)整 proxy_connect_timeout 的值,可以控制 Nginx 與后端服務(wù)器建立連接的超時(shí)時(shí)間,以適應(yīng)不同的網(wǎng)絡(luò)環(huán)境和后端服務(wù)器的性能。如果設(shè)置為較小的值,將縮短超時(shí)時(shí)間,可能導(dǎo)致連接失?。蝗绻O(shè)置為較大的值,將延長超時(shí)時(shí)間,可能導(dǎo)致請(qǐng)求延遲。因此,需要根據(jù)實(shí)際情況進(jìn)行合理的配置。
proxy_send_timeout;
用于設(shè)置向后端/上游服務(wù)器發(fā)送請(qǐng)求的超時(shí)時(shí)間。
當(dāng) Nginx 與后端/上游服務(wù)器建立連接后,它會(huì)將請(qǐng)求發(fā)送給后端/上游服務(wù)器。如果在 proxy_send_timeout 指定的時(shí)間內(nèi),Nginx 無法成功發(fā)送整個(gè)請(qǐng)求,那么它將關(guān)閉與后端/上游服務(wù)器的連接,并返回一個(gè)錯(cuò)誤給客戶端。這個(gè)指令的單位是秒,默認(rèn)值通常為 60 秒。
通過調(diào)整 proxy_send_timeout 的值,可以控制 Nginx 向后端/上游服務(wù)器發(fā)送請(qǐng)求的超時(shí)時(shí)間,以適應(yīng)不同的網(wǎng)絡(luò)環(huán)境和請(qǐng)求大小。如果設(shè)置為較小的值,將縮短超時(shí)時(shí)間,可能導(dǎo)致請(qǐng)求發(fā)送失??;如果設(shè)置為較大的值,將延長超時(shí)時(shí)間,可能導(dǎo)致請(qǐng)求發(fā)送延遲。因此,需要根據(jù)實(shí)際情況進(jìn)行合理的配置。
proxy_read_timeout;
用于設(shè)置向后端/上游服務(wù)器讀取響應(yīng)的超時(shí)時(shí)間。
具體來說,當(dāng) Nginx 向后端/上游服務(wù)器發(fā)送請(qǐng)求后,它會(huì)等待后端/上游服務(wù)器返回響應(yīng)。如果在 proxy_read_timeout 指定的時(shí)間內(nèi),Nginx 無法從后端/上游服務(wù)器讀取到完整的響應(yīng),那么它將關(guān)閉與后端/上游服務(wù)器的連接,并返回一個(gè)錯(cuò)誤給客戶端。這個(gè)指令的單位是秒,默認(rèn)值通常為 60 秒。
proxy_buffering on;?
用于開啟從后端被代理服務(wù)器響應(yīng)內(nèi)容的緩沖。
如果 proxy_buffering 開啟,Nginx 會(huì)假定被代理的后端服務(wù)器會(huì)以最快速度響應(yīng),并把內(nèi)容保存在由指令 proxy_buffer_size 和 proxy_buffers 指定的緩沖區(qū)里邊。如果響應(yīng)內(nèi)容無法放在內(nèi)存里邊,那么部分內(nèi)容會(huì)被寫到磁盤上。如果 proxy_buffering 被關(guān)閉了,那么響應(yīng)內(nèi)容會(huì)按照獲取內(nèi)容的多少立刻同步傳送到客戶端。
proxy_buffer_size 32k;
用于設(shè)置代理服務(wù)器保存用戶響應(yīng)頭信息的緩沖區(qū)大小。
將 proxy_buffer_size 設(shè)置為 32k,意味著代理服務(wù)器將使用 32k 大小的緩沖區(qū)來保存用戶響應(yīng)頭信息。這個(gè)緩沖區(qū)的大小可以根據(jù)實(shí)際需求進(jìn)行調(diào)整,以適應(yīng)不同大小的頭信息。
proxy_buffers 4 128k;
用于設(shè)置代理服務(wù)器(Nginx)保存用戶響應(yīng)體的緩沖區(qū)數(shù)量和大小。
proxy_buffers 設(shè)置為 4 128k,意味著代理服務(wù)器將使用 4 個(gè)大小為 128k 的緩沖區(qū)來保存用戶響應(yīng)體。這些緩沖區(qū)用于存儲(chǔ)從后端服務(wù)器獲取的響應(yīng)數(shù)據(jù),以便在客戶端請(qǐng)求時(shí)進(jìn)行讀取和傳輸。
roxy_busy_buffers_size 256k;
?用于設(shè)置代理服務(wù)器在處理高并發(fā)請(qǐng)求時(shí),忙緩沖區(qū)的大小。
當(dāng)代理服務(wù)器同時(shí)處理大量請(qǐng)求時(shí),這個(gè)指令可以幫助控制忙緩沖區(qū)的內(nèi)存使用量,以防止內(nèi)存溢出或性能問題。如果代理服務(wù)器正在處理大量請(qǐng)求并且緩沖區(qū)已滿,那么新請(qǐng)求將會(huì)被拒絕或等待,直到有足夠的空間可用。
將 proxy_busy_buffers_size 設(shè)置為 256k,意味著代理服務(wù)器在處理高并發(fā)請(qǐng)求時(shí),每個(gè)緩沖區(qū)的大小將被限制為 256k。這個(gè)值可以根據(jù)實(shí)際負(fù)載和性能需求進(jìn)行調(diào)整,以確保代理服務(wù)器在高并發(fā)情況下仍然能夠有效地處理請(qǐng)求。文章來源:http://www.zghlxwxcb.cn/news/detail-773660.html
proxy_max_temp_file_size 256k;
用于設(shè)置代理服務(wù)器在緩沖響應(yīng)數(shù)據(jù)時(shí),臨時(shí)文件的最大大小。
當(dāng) Nginx 代理服務(wù)器從后端服務(wù)器接收響應(yīng)數(shù)據(jù)時(shí),如果響應(yīng)數(shù)據(jù)的大小超過了 proxy_buffer_size 和 proxy_buffers 指定的緩沖區(qū)大小,Nginx 會(huì)將超出部分的數(shù)據(jù)寫入臨時(shí)文件中。proxy_max_temp_file_size 指令用于限制這些臨時(shí)文件的最大大小。
將 proxy_max_temp_file_size 設(shè)置為 256k,意味著每個(gè)臨時(shí)文件的最大大小將被限制為 256k。如果響應(yīng)數(shù)據(jù)的大小超過了緩沖區(qū)大小和臨時(shí)文件的最大大小,Nginx 將會(huì)報(bào)錯(cuò)并返回錯(cuò)誤給客戶端。文章來源地址http://www.zghlxwxcb.cn/news/detail-773660.html
到了這里,關(guān)于Nginx反向代理服務(wù)器簡單配置案例的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!