国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

利用Nginx正向代理實(shí)現(xiàn)局域網(wǎng)電腦訪問外網(wǎng)

這篇具有很好參考價(jià)值的文章主要介紹了利用Nginx正向代理實(shí)現(xiàn)局域網(wǎng)電腦訪問外網(wǎng)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

引言

在網(wǎng)絡(luò)環(huán)境中,有時(shí)候我們需要讓局域網(wǎng)內(nèi)的電腦訪問外網(wǎng),但是由于網(wǎng)絡(luò)策略或其他原因,直接訪問外網(wǎng)是不可行的。這時(shí)候,可以借助 Nginx 來搭建一個(gè)正向代理服務(wù)器,實(shí)現(xiàn)局域網(wǎng)內(nèi)電腦通過 Nginx 轉(zhuǎn)發(fā)訪問外網(wǎng)的需求。

在工作中我遇到了一個(gè)類似的情況:在公司網(wǎng)絡(luò)中,由于管理要求,局域網(wǎng)內(nèi)的電腦不能直接訪問外網(wǎng)。但是,有時(shí)候我們需要讓局域網(wǎng)內(nèi)的電腦能夠訪問外網(wǎng)上的某個(gè)網(wǎng)站,這時(shí)候就需要用到正向代理。本文將介紹如何配置 Nginx 實(shí)現(xiàn)這一功能。

準(zhǔn)備工作

首先,我們需要一臺(tái)可以訪問外網(wǎng)的服務(wù)器,例如一臺(tái)服務(wù)器、電腦或者虛擬機(jī)。確保該服務(wù)器已經(jīng)安裝了 Nginx,并且網(wǎng)絡(luò)配置正確。

我這里是有一臺(tái)服務(wù)器是可以正常訪問外網(wǎng)的(IP:192.168.0.10),同時(shí)局域網(wǎng)內(nèi)的其他電腦也可以訪問這臺(tái)服務(wù)器。

修改nginx.conf

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;

    keepalive_timeout  65;

	# 正向代理配置內(nèi)容
	server {
		 listen 9000;	# 監(jiān)聽端口
		 server_name localhost;
		
		set $url "proxy_server_doman_or_ip";	# 設(shè)置代理的域名或IP變量,這里替換成自己需要代理的網(wǎng)站
		 location / {
		     proxy_pass http://$url:8082;	# 將請(qǐng)求轉(zhuǎn)發(fā)到由 $url 變量表示的地址。
		 }
	}
}

重啟nginx,打開局域網(wǎng)電腦測試訪問:192.168.0.10:9000,網(wǎng)頁跳轉(zhuǎn)成功。不就是請(qǐng)求轉(zhuǎn)發(fā)嘛,so easy!
nginx如何代理訪問網(wǎng)絡(luò),開發(fā)壞境配置,nginx,運(yùn)維,微服務(wù)

問題解決?如果這么簡單我就不寫這篇文章了??

果然第二天就出問題了,有同事反饋網(wǎng)站進(jìn)不去了。我想不可能吧,一測試果然不行。果斷查閱了一下資料,找到問題原因:nginx在進(jìn)行域名轉(zhuǎn)發(fā)時(shí)會(huì)先把域名解析成IP保存在內(nèi)存中,后面的訪問都是通過IP直接訪問,如果目標(biāo)網(wǎng)站的 IP 地址發(fā)生變化,我們的代理就會(huì)失效。

找到原因就好辦了,添加域名解析功能嘛

域名解析

為了解決 IP 地址變化的問題,我們可以使用域名解析來動(dòng)態(tài)獲取目標(biāo)網(wǎng)站的 IP 地址。直接奉上完整配置,修改 Nginx 配置如下:

# 設(shè)置Nginx啟動(dòng)一個(gè)工作進(jìn)程,這是Nginx的一個(gè)核心設(shè)置,它決定了Nginx會(huì)使用多少個(gè)工作進(jìn)程來處理客戶端請(qǐng)求。
worker_processes  1;		

# 配置定義了Nginx如何處理事件,例如連接請(qǐng)求,數(shù)據(jù)傳輸?shù)?events {
    worker_connections  1024;		# 定義了每個(gè)工作進(jìn)程允許的最大并發(fā)連接數(shù)。
}

# HTTP模塊的配置塊,包含了HTTP服務(wù)器的一般配置
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;

    keepalive_timeout  65;

	# 正向代理配置內(nèi)容
	server {
		 listen 9000;	# 監(jiān)聽端口
		 server_name localhost;

		# 設(shè)置DNS解析器的地址為8.8.8.8,并且設(shè)置了解析器的緩存時(shí)間為300秒(這樣每隔300s就會(huì)重新解析一次)。ipv6=off 是關(guān)閉IPv6的解析支持。
		resolver 8.8.8.8 valid=300 ipv6=off; 
		resolver_timeout 3s;	# 設(shè)置解析DNS的超時(shí)時(shí)間為3秒
		
		proxy_read_timeout 60s;
		proxy_send_timeout 60s;
		proxy_connect_timeout 60s;
		
		set $url "proxy_server_doman_or_ip";	# 設(shè)置代理的域名或IP變量,這里替換成自己需要代理的網(wǎng)站
		 location / {
			proxy_pass http://$url:9000;	# 將請(qǐng)求轉(zhuǎn)發(fā)到由 $url 變量表示的地址。9000是目標(biāo)網(wǎng)站的端口。
			
			proxy_buffers 256 4K;		# 設(shè)置用于緩存后端響應(yīng)的緩沖區(qū)大小為256個(gè),每個(gè)大小為4K。
			proxy_max_temp_file_size 0;		# 設(shè)置Nginx暫存響應(yīng)數(shù)據(jù)的最大臨時(shí)文件大小為0,即不使用臨時(shí)文件。
			proxy_cache_valid 200 302 1m; 	# 針對(duì)狀態(tài)碼為200和302的響應(yīng),設(shè)置緩存有效期為1分鐘。
			proxy_cache_valid 301 1h;		# 針對(duì)狀態(tài)碼為301的響應(yīng),設(shè)置緩存有效期為1小時(shí)。
			proxy_cache_valid any 1m;	# 對(duì)于其他任何響應(yīng)狀態(tài)碼,設(shè)置緩存有效期為1分鐘。
		 }
	}
}

重啟nginx,問題解決。到這里,正向代理功能就實(shí)現(xiàn)了。如果只想實(shí)現(xiàn)正向代理功能看到這里就可以了。后面是我在遇到問題時(shí)的一些調(diào)試經(jīng)驗(yàn)技巧!

轉(zhuǎn)發(fā)代理調(diào)試

我在實(shí)現(xiàn)代理后,發(fā)現(xiàn)正向代理響應(yīng)的速度非常慢有時(shí)候需要一分鐘才能響應(yīng)結(jié)果。但有時(shí)候又很快。就好奇為啥會(huì)這樣,為了方便調(diào)試和監(jiān)控,我設(shè)置添加了Nginx 的訪問日志。

修改 Nginx 配置如下:

# 設(shè)置日志記錄格式
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                    '$status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_x_forwarded_for"' 'upstreamIP: $upstream_addr' 'upgrade: $http_upgrade';

# 正向代理配置內(nèi)容
	server {
		 listen 9000;	# 監(jiān)聽端口
		 server_name localhost;

		# 設(shè)置DNS解析器的地址為8.8.8.8,并且設(shè)置了解析器的緩存時(shí)間為300秒(這樣每隔300s就會(huì)重新解析一次)。ipv6=off 是關(guān)閉IPv6的解析支持。
		resolver 8.8.8.8 valid=300 ipv6=off; 
		resolver_timeout 3s;	# 設(shè)置解析DNS的超時(shí)時(shí)間為3秒
		
		proxy_read_timeout 60s;
		proxy_send_timeout 60s;
		proxy_connect_timeout 60s;
		
		set $url "proxy_server_doman_or_ip";	# 設(shè)置代理的域名或IP變量,這里替換成自己需要代理的網(wǎng)站
		 location / {
			proxy_pass http://$url:9000;	# 將請(qǐng)求轉(zhuǎn)發(fā)到由 $url 變量表示的地址。9000是目標(biāo)網(wǎng)站的端口。
			
			proxy_buffers 256 4K;		
			proxy_max_temp_file_size 0;		
			proxy_cache_valid 200 302 1m; 
			proxy_cache_valid 301 1h;		
			proxy_cache_valid any 1m;	
			
			access_log logs/proxy/access.log main;		# 定義了訪問日志的路徑和格式。
		    error_log logs/proxy/error.log;		# 定義了錯(cuò)誤日志的路徑
		 }
	}

這樣,Nginx 將會(huì)在nginx項(xiàng)目下的 logs/proxy/access.log 文件中記錄所有代理轉(zhuǎn)發(fā)日志。

日志信息:

192.168.0.28 - - [27/Feb/2024:17:02:03 +0800] “GET /prod-api/system/todo/listAll?pageNum=1&pageSize=10&active=true HTTP/1.1” 200 64 “http://192.168.20.2:8082/user-task/todo” “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:123.0) Gecko/20100101 Firefox/123.0” "-"upstreamIP: 182.148.159.30:8082
192.168.0.28 - - [27/Feb/2024:17:02:03 +0800] “GET /prod-api/process/business/listAll?pageNum=1&pageSize=10&active=true HTTP/1.1” 200 979 “http://192.168.20.2:8082/user-task/todo” “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:123.0) Gecko/20100101 Firefox/123.0” "-"upstreamIP: 182.148.159.30:8082
192.168.0.28 - - [27/Feb/2024:17:02:06 +0800] “GET /prod-api/system/user/select HTTP/1.1” 499 0 “http://192.168.20.2:8082/login?redirect=%2Findex” “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:123.0) Gecko/20100101 Firefox/123.0” "-"upstreamIP: 172.16.30.6:8082

通過日志信息可以看到,請(qǐng)求轉(zhuǎn)發(fā)后的upstreamIP有兩個(gè)不同的IP:182.148.159.30和172.16.30.6,說明請(qǐng)求被轉(zhuǎn)發(fā)到了兩個(gè)不同的IP,當(dāng)請(qǐng)求IP為182.148.159.30時(shí),響應(yīng)正常;當(dāng)請(qǐng)求IP為172.16.30.6時(shí),響應(yīng)失敗導(dǎo)致等待。

發(fā)現(xiàn)這個(gè)情況后,我也是很疑惑為啥會(huì)將域名解析出兩個(gè)IP,第一反應(yīng)是域名解析錯(cuò)誤,為了驗(yàn)證我將DNS解析的服務(wù)器換成了離我最近的四川電信服務(wù)器:61.139.2.69,測試發(fā)現(xiàn)結(jié)果也是一樣的。雖然感覺解析是沒有問題的,保險(xiǎn)起見我還是自己在網(wǎng)上通過解析網(wǎng)站測試了一下域名解析的結(jié)果:結(jié)果顯示域名確實(shí)綁定了兩個(gè)IP,一個(gè)是正常的一個(gè)是不行的。

然后我就聯(lián)系我們這個(gè)域名對(duì)應(yīng)網(wǎng)站的負(fù)責(zé)人,得出的結(jié)果就是他們確實(shí)綁定了兩個(gè)IP,有一個(gè)IP是綁定的內(nèi)網(wǎng)IP,所以才導(dǎo)致外網(wǎng)請(qǐng)求時(shí)失效。

失敗的原因:nginx獲取解析后的IP是通過輪詢往IP轉(zhuǎn)發(fā)請(qǐng)求,如果輪詢到內(nèi)網(wǎng)IP就會(huì)導(dǎo)致請(qǐng)求失敗。

解決辦法:

  1. 手動(dòng)選擇IP地址:在Nginx配置中,你可以手動(dòng)指定代理的目標(biāo)IP地址,而不是使用解析出的IP地址。這樣可以避免將請(qǐng)求發(fā)送到內(nèi)網(wǎng)IP。

  2. 使用域名解析出的IP地址進(jìn)行請(qǐng)求:你可以通過解析域名獲取到的IP地址列表,然后使用一些方法(比如按照某種規(guī)則選擇IP地址)來保證請(qǐng)求不會(huì)發(fā)送到內(nèi)網(wǎng)IP地址。

  3. 使用nginx的upstream模塊進(jìn)行負(fù)載均衡:通過upstream模塊,你可以指定多個(gè)代理服務(wù)器,然后使用一定的負(fù)載均衡策略,比如輪詢、權(quán)重等,來分配請(qǐng)求到不同的服務(wù)器。在這里,你可以手動(dòng)配置upstream模塊,指定外網(wǎng)IP,而不包括內(nèi)網(wǎng)IP。

  4. 修改DNS設(shè)置:聯(lián)系網(wǎng)站負(fù)責(zé)人,修改域名解析,只將外網(wǎng)IP綁定到域名上,而不包括內(nèi)網(wǎng)IP。

你們猜我最后咋解決的???

必須是第四條?。。?!文章來源地址http://www.zghlxwxcb.cn/news/detail-843819.html

到了這里,關(guān)于利用Nginx正向代理實(shí)現(xiàn)局域網(wǎng)電腦訪問外網(wǎng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 如何在局域網(wǎng)中進(jìn)行遠(yuǎn)程桌面登入實(shí)現(xiàn)遠(yuǎn)程控制電腦

    要遠(yuǎn)程控制本地桌面電腦,就必須要獲得本地電腦權(quán)限。所有的遠(yuǎn)程控制軟件都是一個(gè)原理哦,只是有些遠(yuǎn)程控制軟件把獲得權(quán)限的設(shè)置偽裝成一個(gè)木馬而已,當(dāng)你點(diǎn)擊后就證明你允許它遠(yuǎn)程控制電腦,受理他所有的權(quán)限,那么他就可以為所欲為了。其實(shí)正規(guī)的獲取本地電腦

    2024年02月06日
    瀏覽(34)
  • 兩臺(tái)同一局域網(wǎng)下的電腦實(shí)現(xiàn)共享文件夾

    兩臺(tái)同一局域網(wǎng)下的電腦實(shí)現(xiàn)共享文件夾

    背景 :買了臺(tái)新的筆記本;舊筆記本連接校園網(wǎng)并開移動(dòng)熱點(diǎn);新筆記本連接熱點(diǎn); 目標(biāo) :舊筆記本創(chuàng)建一個(gè)共享文件夾,供新筆記本訪問讀寫 2.1、舊筆記本 (1)網(wǎng)絡(luò)設(shè)置 win+i - 網(wǎng)絡(luò)和Internet - 網(wǎng)絡(luò)和共享中心 - 更改高級(jí)選項(xiàng)設(shè)置 - 勾選兩個(gè) 所有網(wǎng)絡(luò) - 無密碼保護(hù)的共享

    2024年02月09日
    瀏覽(30)
  • 軟路由R4S+iStoreOS實(shí)現(xiàn)公網(wǎng)遠(yuǎn)程桌面局域網(wǎng)內(nèi)電腦

    軟路由R4S+iStoreOS實(shí)現(xiàn)公網(wǎng)遠(yuǎn)程桌面局域網(wǎng)內(nèi)電腦

    上篇教程我們介紹了如何在iStoreOS中安裝Cpolar,并使用Cpolar遠(yuǎn)程訪問iStoreOS面板。 iStoreOS安裝永久免費(fèi)內(nèi)網(wǎng)穿透軟件Cpolar - Cpolar 極點(diǎn)云 接下來我們介紹,如何使用實(shí)體軟路由,通過Cpolar來遠(yuǎn)程公網(wǎng)控制局域網(wǎng)內(nèi)的所有電腦。 軟路由 是PC的硬件加上路由系統(tǒng)來實(shí)現(xiàn)路由器的功能

    2024年02月05日
    瀏覽(41)
  • 局域網(wǎng)限速軟件控制電腦網(wǎng)速、控制局域網(wǎng)流量教程

    在局域網(wǎng)網(wǎng)絡(luò)管理中,網(wǎng)管員一個(gè)非常重要的工作就是限制局域網(wǎng)網(wǎng)速、合理分配上網(wǎng)帶寬。這是因?yàn)閲鴥?nèi)企事業(yè)單位出口網(wǎng)絡(luò)帶寬一般較小,企業(yè)上網(wǎng)速度普遍較慢。而當(dāng)前各種網(wǎng)絡(luò)應(yīng)用層出不窮,尤其是P2P下載、在線看視頻、看網(wǎng)絡(luò)電視等行為極為普遍。這些與工作無關(guān)

    2024年02月06日
    瀏覽(27)
  • 局域網(wǎng),手機(jī)與電腦文件共享

    局域網(wǎng),手機(jī)與電腦文件共享

    優(yōu)點(diǎn): 1.傳輸速度快,平時(shí)校園網(wǎng)下載網(wǎng)速2MB/秒,用這個(gè)可達(dá)6.1MB/秒 2.利用校園網(wǎng),可做到只連接Wifi不使用賬號(hào)登錄,也可傳輸。 3.可傳輸較大文件(5GB都可)。 4.有可視化面板,操作簡單。 5.有文字共享功能,可互相發(fā)送文字信息。 缺點(diǎn): 1.需要有java運(yùn)行環(huán)境。 2.需要在

    2024年02月16日
    瀏覽(20)
  • 局域網(wǎng)電腦網(wǎng)卡故障維修實(shí)例

    一、合理配置服務(wù)器電腦硬盤 當(dāng)局域網(wǎng)的訪問速度降低時(shí),往往會(huì)首先想到網(wǎng)卡、交換機(jī)等所謂\\\"瓶頸\\\"設(shè)備,其實(shí)服務(wù)器硬盤的速度也是影響網(wǎng)絡(luò)性能的重要因素。通常,在設(shè)置硬盤時(shí)需要考慮以下兩方面因素:服務(wù)器的硬盤應(yīng)盡量選擇轉(zhuǎn)速快、容量大的硬盤。服務(wù)器最好采

    2024年02月05日
    瀏覽(25)
  • 局域網(wǎng)中電腦共享文件給手機(jī)

    局域網(wǎng)中電腦共享文件給手機(jī)

    學(xué)習(xí)資源: 局域網(wǎng)共享:這樣設(shè)置,你可以輕松拷貝任何電腦的文件。_嗶哩嗶哩_bilibili 可以實(shí)現(xiàn)什么效果? 連接同一個(gè)WIFI,電腦端為服務(wù)端,提供共享文件,手機(jī)是客戶端,可以讀取服務(wù)端的文件。 如何實(shí)現(xiàn)這樣的效果。 跟著視頻一步步走。 過程中遇到的問題: 1.計(jì)算

    2024年02月11日
    瀏覽(25)
  • Nginx開啟https和局域網(wǎng)訪問配置攻略

    Nginx開啟https和局域網(wǎng)訪問配置攻略

    隨著網(wǎng)絡(luò)應(yīng)用的普及,越來越多的服務(wù)和應(yīng)用開始運(yùn)行在互聯(lián)網(wǎng)上。這些服務(wù)和應(yīng)用需要保護(hù)用戶數(shù)據(jù)的機(jī)密性、完整性和可用性。HTTPS作為一種可防止中間人攻擊的加密通信協(xié)議,可以有效地保護(hù)用戶數(shù)據(jù)的安全性和隱私性。同時(shí),對(duì)于在局域網(wǎng)內(nèi)部運(yùn)行的服務(wù)和應(yīng)用,也

    2024年03月10日
    瀏覽(31)
  • Windows電腦怎么設(shè)置局域網(wǎng)內(nèi)共享磁盤?

    Windows電腦怎么設(shè)置局域網(wǎng)內(nèi)共享磁盤?

    前言: 我有一臺(tái)主機(jī)硬盤容量比較大,想做為一個(gè)共享硬盤,方便我其他筆記本能夠往這臺(tái)硬盤傳輸文件,想到的最好最快的方法就是通過局域網(wǎng)內(nèi)部進(jìn)行文件傳輸。通過局域網(wǎng)共享磁盤,這種方法也是非常便捷的。那如何設(shè)置操作呢?請(qǐng)?jiān)敿?xì)看下文。 局域網(wǎng)共享磁盤,共

    2024年02月09日
    瀏覽(29)
  • 局域網(wǎng)內(nèi)的手機(jī)、平板、電腦的文件共享

    局域網(wǎng)內(nèi)的手機(jī)、平板、電腦的文件共享

    在日常工作生活中,經(jīng)常需要將文件在手機(jī)、平板、電腦間傳輸,以下介紹三種較為便捷的方法: 該軟件是免費(fèi)開源的,可以 在局域網(wǎng)內(nèi)的任意手機(jī)、平板、電腦間傳遞文件 ,并且 任意一方都可以作為“發(fā)送方”和“接收方” 。同時(shí)該軟件還支持直接傳輸“ 復(fù)制的文本內(nèi)

    2024年04月16日
    瀏覽(92)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包