摘要:承接上一篇文章,在本文中,將上文中的靜態(tài)資源服務(wù)器作為上游服務(wù)器,另外搭建一臺服務(wù)器,作為反向代理服務(wù)器。
承接上一篇文章,在本文中,將上文中的靜態(tài)資源服務(wù)器作為上游服務(wù)器,另外搭建一臺 Nginx 服務(wù)器,作為反向代理服務(wù)器。
配置反向代理服務(wù)器上游服務(wù)器處理的業(yè)務(wù)邏輯相對復(fù)雜,而且強(qiáng)調(diào)開發(fā)效率,所以它的性能并不優(yōu)秀,使用 nginx 作為反向代理后,可以將請求將根據(jù)負(fù)載均衡算法,分散到多臺上游(后端)服務(wù)器,這樣就實(shí)現(xiàn)了架構(gòu)上的水平擴(kuò)展,讓用戶無感知的情況下,添加更多的服務(wù)器,來提升性能,即使后端的服務(wù)器出現(xiàn)問題,nginx反向代理服務(wù)器會轉(zhuǎn)交給正常工作的服務(wù)器。
一般情況下,上游服務(wù)器不對外提供訪問,修改的方法是,將 server 配置塊中的 listen 配置項修改為內(nèi)部網(wǎng)絡(luò)地址,修改配置文件后,重啟nginx 進(jìn)程,目的是防止之前打開的端口仍然可以使用。
Nginx實(shí)現(xiàn)反向代理的功能由 ngx_http_proxy_module 實(shí)現(xiàn),下面是配置示例:
location / { proxy_pass http://localhost:8080; proxy_set_header Host $host; #當(dāng)后端還有虛擬主機(jī)時,應(yīng)該返回正確的網(wǎng)頁,而不是用戶請求不用的 host 都返回相同的內(nèi)容 proxy_set_header X-Real-IP $remote_addr; }
當(dāng)用戶請求"/"的所有 URL請求,都轉(zhuǎn)交配置文件中proxy_pass指定的后端服務(wù)器,同時還設(shè)置了向后端生成請求報文時新的 header,如定義Host 將用戶請求的 host 定義在 header 中,定義 X-Real-IP客戶端的 IP 地址。
... upstream webdlib{ #定義上游服務(wù)器群組,并自定義名稱為 webdlib server 172.16.240.140:8080; #上游服務(wù)器群組的服務(wù)器列表,多臺服務(wù)器可以選擇負(fù)載均衡算法 } server { listen 80 server_name _; ... ... location / { proxy_pass http://172.16.240.140:8080; #設(shè)置上游服務(wù)器地址 proxy_set_header Host $host; #添加請求首部 host 名稱,由上游服務(wù)器處理 host 請求 proxy_set_header X-Real-IP $remote_addr; #添加客戶端真實(shí) IP 地址 proxy_set_header X-Forward-For $proxy_add_x_forwarded_for; }配置緩存服務(wù)器
通常只有動態(tài)請求,也就是不同的用戶訪問同一個 url內(nèi)容不相同時,請求才會交由上游處理,在頁面中,一部分內(nèi)容在一段時間不會發(fā)生變化,為了減輕上游服務(wù)器的壓力,將上游服務(wù)器返回的內(nèi)容,緩存在反向代理服務(wù)器中保存一段時間,如幾個小時或一天,在緩存時間內(nèi),即使上游服務(wù)器內(nèi)容發(fā)生變化,也會被忽視,將緩存的內(nèi)容向?yàn)g覽器發(fā)送。使用緩存會提供站點(diǎn)的響應(yīng)性能。
首先要在 http 配置塊下,使用proxy_cache_path定義緩存文件的路徑、文件命名方式、命名共享內(nèi)存及共享內(nèi)存的空間大小等信息,如proxy_cache_path /tmp/nginxcache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;
緩存的使用方法則是,在需要進(jìn)行緩存url 路徑下,添加 proxy_cache、proxy_cache_key、proxy_cache_valid。
proxy_cache my_cache:指定緩存共享內(nèi)存的命名
proxy_cahce_key $host$uri$is_args$args:在共享內(nèi)存中設(shè)置的 key 的值,這里將 host,uri 等作為 key 值
Proxy_cache_valid 200 304 302 1d :指定的響應(yīng)不返回緩存
下面是關(guān)于緩存的配置文件節(jié)選:
... http { ... proxy_cache_path /tmp/nginxcache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off; ... server { ... location / { proxy_pass http://172.16.240.140:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forward-For $proxy_add_x_forwarded_for; proxy_cache my_cache; proxy_cache_key $host$uri$is_args$args; proxy_cache_valid 200 304 302 1d; } } }總結(jié)
首先配置反向代理服務(wù)器,需要使用 proxy_pass設(shè)置上游服務(wù)地址、使用 proxy_set_header設(shè)置向后端發(fā)送請求的 header諸如客戶端的 IP 地址、請求的 host。
配置緩存服務(wù)器,首先要設(shè)置緩存的名稱,內(nèi)存空間名稱等信息,然后在需要進(jìn)行緩存的 URL 路徑下,啟用緩存,進(jìn)行緩存的設(shè)置諸如緩存的名稱、緩存的 key 等。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/62072.html
摘要:承接上一篇文章,在本文中,將上文中的靜態(tài)資源服務(wù)器作為上游服務(wù)器,另外搭建一臺服務(wù)器,作為反向代理服務(wù)器。 承接上一篇文章,在本文中,將上文中的靜態(tài)資源服務(wù)器作為上游服務(wù)器,另外搭建一臺 Nginx 服務(wù)器,作為反向代理服務(wù)器。 配置反向代理服務(wù)器 上游服務(wù)器處理的業(yè)務(wù)邏輯相對復(fù)雜,而且強(qiáng)調(diào)開發(fā)效率,所以它的性能并不優(yōu)秀,使用 nginx 作為反向代理后,可以將請求將根據(jù)負(fù)載均衡算法,...
摘要:我覺得結(jié)合的反向代理,緩存和圖像過濾處理三大模塊來為我托管在上的圖片來創(chuàng)建一個縮略圖服務(wù)器會很優(yōu)雅。后者將作為的反向代理,產(chǎn)生并提供調(diào)整大小后的圖像。它返回有效的響應(yīng),緩存服務(wù)器將緩存該響應(yīng)天,其它任何東西都只緩存秒。 一兩個月前,我決定從我的站點(diǎn)中移除Varnish ,并用Nginx內(nèi)置的緩存系統(tǒng)替代它。我本來已經(jīng)在我的python站點(diǎn)上用了nginx來反向代理,所以擺脫Varnis...
摘要:我覺得結(jié)合的反向代理,緩存和圖像過濾處理三大模塊來為我托管在上的圖片來創(chuàng)建一個縮略圖服務(wù)器會很優(yōu)雅。后者將作為的反向代理,產(chǎn)生并提供調(diào)整大小后的圖像。它返回有效的響應(yīng),緩存服務(wù)器將緩存該響應(yīng)天,其它任何東西都只緩存秒。 一兩個月前,我決定從我的站點(diǎn)中移除Varnish ,并用Nginx內(nèi)置的緩存系統(tǒng)替代它。我本來已經(jīng)在我的python站點(diǎn)上用了nginx來反向代理,所以擺脫Varnis...
閱讀 2490·2021-10-19 11:45
閱讀 2473·2021-09-30 09:56
閱讀 1439·2021-09-30 09:47
閱讀 594·2019-08-30 15:53
閱讀 1838·2019-08-30 15:44
閱讀 587·2019-08-30 12:52
閱讀 1089·2019-08-30 11:16
閱讀 1613·2019-08-29 16:36