基于nginx负载均衡及frp的内网穿透实例3-多用户多网站共用80端口

作者: 无为

全网最全的网络资源分享网站

手机扫码查看

标签:

网络

特别声明:本站资源分别为免费资源、查看密码或解压密码资源、三个级别VIP会员资源。本站所有发布的内容都是安全,请放心下载!本站不可能所有资源都可以商业用途,原创或部分除外!如:商业用途请联系原作者购买正版。与本站无关!若侵犯到您的权益,请联系本站删除,我们将及时处理!

最近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端口访问,于是在nginxserver模块加一个反向代理的设置。

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;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
    
    add_header X-Cache $upstream_cache_status;
	#Set Nginx Cache

    proxy_set_header Accept-Encoding "";
	sub_filter "127.0.0.1" "wuter.cn";
    sub_filter_once off;

    proxy_ignore_headers Set-Cookie Cache-Control expires;
    proxy_cache cache_one;
    proxy_cache_key $host$uri$is_args$args;
    proxy_cache_valid 200 304 301 302 120m;
    expires 12h;
}
}

此时直接访问http://demo.wuter.cn就可以直接访问到我的老母鸡上。

本文最后更新于2020-10-9,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!
分享到:
打赏
未经允许不得转载:

作者: 无为, 转载或复制请以 超链接形式 并注明出处 六月纷飞
原文地址: 《基于nginx负载均衡及frp的内网穿透实例3-多用户多网站共用80端口》 发布于2020-10-9

评论

切换注册

登录

忘记密码?

您也可以使用第三方帐号快捷登录

切换登录

注册

基于nginx负载均衡及frp的内网穿透实例3-多用户多网站共用80端口

长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏