本篇內(nèi)容主要講解“如何使用Nginx配置反向代理”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“如何使用Nginx配置反向代理”吧!
在鄲城等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作定制網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),全網(wǎng)整合營(yíng)銷(xiāo)推廣,成都外貿(mào)網(wǎng)站制作,鄲城網(wǎng)站建設(shè)費(fèi)用合理。
一般配置
在一般的情況下,熟悉nginx的朋友都知道,如果需要配置反向代理,直接寫(xiě)一個(gè)location上下文和proxy模塊即可,如果需要自定義前綴,使用一個(gè)rewrite模塊即可。簡(jiǎn)單例子如下:
location ~ /dfs/group([0-9]) { proxy_pass http://localhost:8080; rewrite ^/dfs/(.*)$ /$1 break; proxy_set_header host $host:$server_port; proxy_set_header x-real-ip $remote_addr; proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for; }
到這里,一般的反代配置就算是可以了,那么對(duì)于go-fastdfs而言是否可以了呢?對(duì)于go-fastdfs一般上傳是可以了,但是呢,對(duì)于使用了tus做斷點(diǎn)續(xù)傳還是不夠,為什么呢?因?yàn)閠us服務(wù)端會(huì)返回301重定向,并且需要攜帶一定的請(qǐng)求頭過(guò)去,所以還需要特別的設(shè)置一下。
支持tus的反代配置
如果需要做tus的反代,要支持301重定向location的重寫(xiě)還要支持一定的請(qǐng)求頭轉(zhuǎn)發(fā),那該如何配置呢?請(qǐng)參考下面的配置
location ~ /dfs1/group([0-9]) { access_log logs/dfs/access.log main; error_log logs/dfs/error.log error; rewrite ^/dfs1/(.*)$ /$1 break; proxy_pass http://localhost:8051; # disable request and response buffering proxy_request_buffering off; proxy_buffering off; proxy_http_version 1.1; proxy_set_header host $host:$server_port; proxy_set_header x-real-ip $remote_addr; proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for; # 如果server_name不是公網(wǎng)域名,這個(gè)地方可以設(shè)置成ip proxy_set_header x-forwarded-host $hostname; proxy_set_header x-forwarded-proto $scheme; proxy_set_header upgrade $http_upgrade; proxy_set_header connection "upgrade"; # 因?yàn)槭褂昧饲熬Y加rewrite,所以要修改返回的location加上反向代理的前綴 proxy_redirect ~^(.*)/group([0-9])/big/upload/(.*) /dfs/group$2/big/upload/$3; client_max_body_size 0; }
上面要注意一下就是proxy_redirect和client_max_body_size這兩個(gè)配置,第一個(gè)配置是因?yàn)閠us服務(wù)端返回的重定向location是不會(huì)攜帶自定義前綴的,因此需要自己加入自定義的前綴,我這里是/dfs,如果是別的,更換下就好。第二個(gè)就是client_max_body_size了,這個(gè)是設(shè)置為0表示不管上傳多大的文件都不會(huì)報(bào)request too large的問(wèn)題,直接轉(zhuǎn)發(fā)過(guò)去,如果需要設(shè)置,那么請(qǐng)?jiān)O(shè)置大于等于chunksize的數(shù)字。什么是chunksize?就是tus客戶端分塊上傳的時(shí)候,每一塊的大小,具體請(qǐng)參考。
負(fù)載均衡配置
在配置了集群服務(wù)器的情況下,上傳或者下載如何進(jìn)行負(fù)載均衡呢?使用nginx做了反代,配合upstream模塊就可以實(shí)現(xiàn)了,具體參考如下配置
upstream dfs_stream { server host1:port; server host2:port; ip_hash; }
上面的配置和一般的負(fù)載均衡沒(méi)有什么不一樣,唯一要注意的是要配置ip_hash,為什么呢?因?yàn)槭褂脭帱c(diǎn)續(xù)傳的時(shí)候,文件是分塊上傳的,如果不是ip_hash的話,有可能會(huì)前面幾片被上傳到a服務(wù)器,后面幾片被上傳到b服務(wù)器,那么這樣子文件就不是完整的了,因此需要注意這個(gè)問(wèn)題。
到此,相信大家對(duì)“如何使用Nginx配置反向代理”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!