基於nginx負載均衡及frp的內網穿透例項3-多使用者多網站共用80埠
阿新 • • 發佈:2020-12-24
原文地址:點選跳轉
最近frp使用者量有點多,而且很多使用者都是想把部署於本地或者內網的web服務暴露至公網,之前提到過,暴露到公網之後如果一般都需要用域名:埠
的方法來訪問,但是沒有人會喜歡用這種方式訪問網站的。
於是問題就來了
只有一臺機器,使用者都想把自己的web服務對映到80埠,可我的80埠就只有一個,如果第一個使用者使用了80,第二個使用者再使用80肯定會提示埠衝突,所以只通過frp本身的功能是不夠的。
如何實現多使用者共用80埠
一開始陷入了一個圈裡,我在想“假設多個使用者能共用80埠,也就是80埠對應幾個不同的內網web服務,那其他人通過80埠訪問web服務時,伺服器怎麼會知道到底把請求轉發給哪一個WEB服務呢”
誒嘿!結果繞著繞著思路還真就找到了。
我直接告訴伺服器哪個域名對應哪個內網web服務不就行了!
於是想到nginx的負載均衡(可能不太準確,或者說是反向代理)功能正好能實現。
框架大概是這樣:假設不同使用者的內網80埠分別轉發至伺服器的8001、8002、8003·····他們各自的域名分別為a.com 、 b.com 、c.com然後我告訴nginx,有人請求訪問a.com了,你就去找8001埠;有人訪問b.com了,你就去找8002······以此類推。
(太困了,明天繼續寫)
下面舉個例子,我自己老母雞上有一個站點是demo.wuter.cn
,根據我的frp的vhost_http_port
設定,這個站點的80
8081
埠的,但我又想直接通過公網的80
埠訪問,於是在nginx
的server
模組加一個反向代理的設定。
server
{
listen 80;
server_name demo.wuter.cn;
index index.php index.html index.htm default.php default.htm default.html;
root /www/wwwroot/demo.wuter.cn;
location /
{
proxy_pass http://127.0.0.1:8081;
proxy_set_header Host $host;此時直接訪問http://demo.wuter.cn就可以直接訪問到我的老母雞上。(文章發出時已關閉母雞)