-
當前位置:首頁 > 創(chuàng)意學院 > 技術 > 專題列表 > 正文
nginx轉發(fā)到內網穿透地址(nginx轉發(fā)到內網穿透地址會變嗎)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關于nginx轉發(fā)到內網穿透地址的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
ChatGPT國內免費在線使用,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等
只需要輸入關鍵詞,就能返回你想要的內容,越精準,寫出的就越詳細,有微信小程序端、在線網頁版、PC客戶端
本文目錄:
一、給Frp穿透的內網Web上https
2020年了,誰還沒有個https呢,不上SSL證書就out了
Nginx
第一方法是在服務器端使用Nginx。Nginx監(jiān)聽80和443端口,把來自域名的請求,通過Nginx的反向代理轉發(fā)給frps監(jiān)聽的端口(比如7000),再由frps在轉發(fā)給frpc處理http響應。在Nginx里配置上https證書,由Nginx實現ssl的加密解密。Nginx配置https證書和反向代理都是常規(guī)操作,不再做多余的演示。覺得麻煩用寶塔。
frp的https配置
frp自身也可以配置上證書提供https服務,服務器frps就安心的做轉發(fā)就好了。
服務器端frps配置
在服務器端想用Nginx反向代理frps,一直沒有測試成功。這里就讓frps獨占80和443端口。修改frps.ini,
[common]
bind_port = 7000
token=12310086N
vhost_http_port = 80
vhost_https_port = 443
frps執(zhí)行修改過的配置文件,注意防火墻或者寶塔放行對應的端口。
./frps -c frps.ini
內網http響應
此時我的一個192.168.0.156的內網 8000端口存在http的響應頁面。
內網frpc配置
frpc.ini配置根據自己情況修改,證書配置"plugin_crt_path"、"plugin_key_path"使用的是對應域名的nginx的證書。"plugin_local_addr"就是內網對應的http響應端口
[common]
server_addr = 服務器IP
bind_port = 7000
token=12310086N
[test_htts2http]
type = https
custom_domains = 域名
plugin = https2http
plugin_local_addr = 127.0.0.1:8000
# HTTPS 證書相關的配置
plugin_crt_path = ./ssl/server.crt
plugin_key_path = ./ssl/server.key
plugin_host_header_rewrite = 127.0.0.1
plugin_header_X-From-Where = frp
./frpc -c frpc.ini
frps端也多了一條連接信息
訪問
配置上的域名解析到服務器的ip上,訪問域名效果
二、nginx抓包顯示內網地址
Nginx抓包無法抓取內網地址,因為內網地址是不能被外網訪問的,Nginx只能抓取外網可以訪問的地址。
三、Nginx配置location進行接口轉發(fā)
生產環(huán)境中,用戶首先訪問網站的域名,然后由Nginx監(jiān)聽 80 端口對請求進行轉發(fā)。
例如用戶發(fā)起以下請求查詢匯率數據:
http://[WEB_DOMAIN]/api/v1/runtime/exchange
經過Nginx處理后到達服務端的請求則是這樣的:
http://[host:port]/v1/runtime/exchange
這個請求再經過微服務的網關,找到 runtime 服務,就會訪問路由為 /exchange 的接口。
了解了這個后,我們來處理需求。
跟coupons服務接口側商定,所有關于coupons服務的接口均采用 applcationCode 和 coupons 參數進行路由映射.
舉個例子:該服務部署在192.168.31.2下的8085端口,提供了一個查詢接口,那么應該是這種規(guī)則:
http://192.168.31.2:8085/runtime/coupons/data
此時,前端依然保持系統(tǒng)原有風格進行api調用:
http://www.baidu.com/api/v1/runtime/coupons/data
那么如何實現訪問 http://www.baidu.com/api/v1/runtime/coupons/data 跳轉到 http://192.168.31.2:8085/runtime/coupons/data 呢?
這樣,就可以使用nginx對coupons服務接口進行轉發(fā)了
四、nginx轉發(fā)不同的域名給不同IP
如果想把不同的域名分配給不同的服務器,最好的方式是在server域中進行配置??梢酝ㄟ^server_name指令去區(qū)分請求時屬于那個域的。配置方式為:
#...#...
server {
listen 8000 default_server;
server_name img10.ff.com img10.*;
#其它的配置項.
#...
#把該server中的所有請求都轉給img10.ff.com這個upstream.
location / {
proxy_pass http://img10.ff.com;
break;
}
}
server {
listen 8000;
server_name img11.ff.com img11.*;
#其它的配置項.
#...
#把該server中的所有請求都轉給img11.ff.com這個upstream.
location / {
proxy_pass http://img11.ff.com;
break;
}
}
#其它配置選項。
注意,此處所有的訪問都是訪問的反向代理的機器,客戶端拿到的ip也是反向代理的ip,只是反向代理會根據server_name把請求轉發(fā)給后端的機器去處理。因此,注意ping命令的返回結果都是反向代理的ip。
以上就是關于nginx轉發(fā)到內網穿透地址相關問題的回答。希望能幫到你,如有更多相關問題,您也可以聯系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內容。
推薦閱讀:
餐飲企業(yè)營銷策略都有哪些?餐飲行業(yè)營銷技巧分享