当前位置:   article > 正文

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

nginx + frp + 二级域名

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

1.frps 服务器的采购

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

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

  1. #frps.ini的内容
  2. [common]
  3. bind_port = 54321
  4. 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

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

家中用域名  home.test333.com

  1. [common]
  2. server_addr = www.test333.com
  3. server_port = 54321
  4. [web-2] #注意,frps透传多个web服务,需要进行编号,否则会冲突,无法透传
  5. type = http
  6. local_ip = 192.168.1.200
  7. local_port = 8080 #这个是SRS服务默认采用的端口号
  8. custom_domains = home.test333.com
  9. http_user = Test
  10. 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服务器,反向代理二级域名指向的服务器,使其不用输入端口号进行访问  

  1. apt update
  2. apt install nginx
  3. vim /etc/nginx/nginx.conf
  4. # 在这个配置文件的 http {} 中,增加虚拟机反向代理。内容如下
  5. server {
  6. listen 80;
  7. server_name home.test333.com camera.test333.com; #两个SRS服务器所采用的二级域名
  8. location / {
  9. proxy_pass http://127.0.0.1:8080; # 所要反向代理的端口
  10. proxy_redirect http://$host/ http://$http_host/;
  11. proxy_set_header X-Real-IP $remote_addr;
  12. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  13. proxy_set_header Host $host;
  14. }
  15. }
  16. #然后重启nginx服务即可
  17. systemctl restart nginx

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

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/285883
推荐阅读
相关标签
  

闽ICP备14008679号