記利用frp配合nginx實現內網透傳


frp下載

背景 :

內網有一台服務器A 在NAT背后

無法被其他客戶端訪問

借助公網服務器B來配置內網透傳

即可通過B來訪問A

服務端安裝frps 啟動: ./frps -c frps.ini

配置文件frps.ini如下

[common]
subdomain_host = example.com # 為父域名    
bind_port = 1234 # 為frp使用的端口
vhost_http_port = 8080 # 為外網服務器的端口
token = XXX # frp客戶端和服務端token相同才可連接

客戶端安裝frpc 啟動: ./frpc -c frpc.ini

配置文件frps.ini如下

[common]
server_addr = example.com # 為服務器地址
server_port = 1234 # frp端口
token = XXX # frp客戶端和服務端token相同才可連接

[web] # 開啟web轉發服務
type = http # 方式: http
local_port = 88 # 本地服務的端口
subdomain = sub # 子域名
locations = / # 根

配置nginx的轉發規則

配置nginxsudo vim /etc/nginx/nginx.conf如下

	underscores_in_headers on;
	server{
		listen 80;
		listen [::]:80;
		server_name sub.example.com; # 這里設置子域名轉發規則
		location / {
			#underscores_in_headers on;
			proxy_set_header Host $host;
			proxy_set_header X-Real-IP $remote_addr;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_pass http://localhost:8080;  # 這里是vhost_http_port 
		}
	}

這樣就實現了訪問 sub.example.com

轉發到本地的localhost:88

這里需要注意的是 nginx對http header中包含下划線的header信息都會過濾掉

所以需要添加 underscores_in_headers on; 才能轉發自定義的header信息


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM