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


    背景:计划将公司的监控摄像头,和家中的监控摄像头,以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服务器,进行自动指向。

  • 相关阅读:
    互联网那些技术 | 扒一扒互联网Markdown的那些事儿
    Kafka3.0.0版本——文件存储机制
    性能测试工具-JMeter与LoadRunner的比较
    IOS面试题object-c 51-60
    Prometheus监控之SNMP Exporter介绍和数据展现
    数据挖掘——了解数据
    Linux 命令
    Apache Shiro反序列化(CVE-2016-4437)漏洞复现
    Java类变量和类方法
    Go 内存分配:结构体中的优化技巧
  • 原文地址:https://blog.csdn.net/lggirls/article/details/126484705