通过二级域名与frp实现不同web服务的聚合透传

背景:计划将公司的监控摄像头,和家中的监控摄像头,以SRS服务搭建成为可随时通过web查看的直播监控系统,为节省资源,采用了frp透传软件进行实现。

1.frps 服务器的采购

购买一台外面的服务器(国内服务器通过域名解析访问,需要对网站进行备案,比较复杂)。服务器的硬件配置上,1核,512M内存的即可,最好选择月流量比较大的,300G以上的。

2. 最小化安装Debian 11 服务系统,下载和配置frps

#frps.ini的内容
[common]
bind_port = 54321
vhost_http_port = 81

可以参考我的文章: Nextcloud 结合frp搭建私有网盘_lggirls的博客-CSDN博客_frp nextcloud

3.注册一个域名,外面注册或者国内的注册都可以,将域名解析到所购买的服务器ip地址即可.

这里假设所注册的顶级域名为  test333.com,则在解析的时候,多添加一些二级域名记录。 诸如 www.test333.com  web.test333.com   camera.test333.com    home.test333.com

4. 配置 frpc.ini   公司和家中的SRS流媒体服务器都需要。

公司用域名  camera.test333.com

[common]
server_addr = www.test333.com
server_port = 54321
[web-1]
type = http
local_ip = 192.168.1.100
local_port = 8080 #这个是SRS服务默认采用的端口号
custom_domains = camera.test333.com
#可以添加访问账号和访问密码
http_user = Test
http_pwd = Camera001

家中用域名  home.test333.com

[common]
server_addr = www.test333.com
server_port = 54321
[web-2]  #注意,frps透传多个web服务,需要进行编号,否则会冲突,无法透传
type = http
local_ip = 192.168.1.200
local_port = 8080 #这个是SRS服务默认采用的端口号
custom_domains = home.test333.com
http_user = Test
http_pwd = Camera002

5.启动 frps 和两台服务器上的frpc,测试。

通过 http://camera.test333.com:81  可以查看公司的 SRS流媒体服务器上的监控画面

通过 http://home.test333.com:81  可以查看家中的 SRS流媒体服务器上的监控画面

6. 配置的关键点

  注意1,frps.ini 中的    bind_port = 54321,vhost_http_port = 81     这两个配置的 值都是可以自定义的。 因为我们的 frps服务器没有安装占用80端口的应用软件(例如 nginx、Apache2 等)所以可以选择80端口(经过测试,不能使用80端口),最终结果是直接输入域名即可访问对应的SRS服务。  

如果 frps.ini 配置为使用 8080端口, 则最后访问两个SRS服务器,还需要加上8080这个端口号。

  注意2,不同的服务器,连接同一个frps,在相同的服务上要进行序号的区分, 也就是 frpc.ini中的[web-1]、[web-2],否则会连接不成功。类似的还有通过 ssh进行登录,是一样的要进行编号。

  注意3,frps软件会自动根据frpc中的custom_domains的设置域名,进行智能透传;类似于nginx根据域名进行反向代理,无需过多配置,非常简便。

7. 安装nginx到frps服务器,反向代理二级域名指向的服务器,使其不用输入端口号进行访问  

apt update
apt install nginx
vim /etc/nginx/nginx.conf
# 在这个配置文件的 http {} 中,增加虚拟机反向代理。内容如下

server {
  listen 80;
  server_name home.test333.com camera.test333.com;  #两个SRS服务器所采用的二级域名
  location / {
   proxy_pass http://127.0.0.1:8080;   # 所要反向代理的端口
   proxy_redirect http://$host/ http://$http_host/;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   proxy_set_header Host $host;
  }
}

#然后重启nginx服务即可
systemctl restart nginx

通过 http://camera.test333.com  可以查看公司的 SRS流媒体服务器上的监控画面

通过 http://home.test333.com     可以查看家中的 SRS流媒体服务器上的监控画面

这里实际上是frps服务器,将其8080端口的数据,反向代理到了80端口;所返回的内容,通过nginx,对你访问时所输入的二级域名所代表的frpc服务器,进行自动指向。

猜你喜欢

转载自blog.csdn.net/lggirls/article/details/126484705