frps 服务器与网站服务共用 80 端口的方法

前言

前段时间在服务器上搭建了 frp 内网穿透的服务,苦于网站已经提前使用了 80 端口,而浏览器这边默认的 http 端口是 80,自己设置的端口号需要手动打上才能使用,因此在一段时间内使用 frp 远程访问设备都是使用域名加端口的方式。

(ru.chenyan98.cn:88 可以访问直接使用 ru.chenyan98.cn 则不能访问)

后来发现可以使用 Nginx 反向代理的方式来实现 80 端口的复用,直接使用域名访问,现在分享给大家,也给大家做个参考。

此方法同样适用于其他端口被占用的情况,在这里说一句:Nginx Yes !

Nginx 反向代理简介

1. 什么是反向代理:

反向代理服务器架设在服务器端,通过缓冲经常被请求的页面来缓解服务器的工作量,将客户机请求转发给内部网络上的目标服务器;并将从服务器上得到的结果返回给 Internet 上请求连接的客户端,此时代理服务器与目标主机一起对外表现为一个服务器。

图片[1] - frps服务器与网站服务共用80端口的方法 - 登山亦有道

2. 反向代理的主要作用:

目前 web 网站使用反向代理,除了可以防止外网对内网服务器的恶性攻击、缓存以减少服务器的压力和访问安全控制之外,还可以进行负载均衡,将用户请求分配给多个服务器。

下面来介绍具体的方法:

修改 Nginx 配置文件

宝塔面板中可以比较直观的修改,不使用宝塔面板的话可以自己手动修改 nginx 的配置文件,修改前记得备份 (养成一个好习惯很重要)

图片[2] - frps服务器与网站服务共用80端口的方法 - 登山亦有道

在 nginx.conf 中 http{ } 里添加一个新的监听服务实现反向代理:

server {
        listen 80; 
        server_name ru.chenyan98.cn; 
        location / { 
        proxy_pass http://127.0.0.1:88;
        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;
        } 
        }

关于以上配置的注意事项:

  • proxy_pass http://127.0.0.1:88; 需要与 frps(服务端) 配置的 vhost_http_port 的端口相对应
  • server_name ru.chenyan98.cn; 需要与 frpc(客户端) 的配置文件中设置的域名相对应;支持泛解析 (*.chenyan98.cn) 但尽量不要使用,会出现主域名的 SSL 证书与二级域名冲突导致无法访问。

设置完成之后保存配置文件并重启 Nginx 服务,即可愉快的通过域名直接访问应用了。

修改完成_检查效果

浏览器中输入域名登录之后 按 F12 打开开发工具后可以看到远程地址的端口默认就已经是 80 了。

图片[3] - frps服务器与网站服务共用80端口的方法 - 登山亦有道

搞乌龙的一些问题

图片[4] - frps服务器与网站服务共用80端口的方法 - 登山亦有道

由于我的网站本身使用了 SSL 可以使用 https 访问,而 OpenWrt 内网穿透这边没有使用 SSL 在访问过程中会被浏览器强制跳转到 https,目测还是宝塔的锅。(后来发现是 Nginx 配置文件写错导致主域名的 SSL 证书与二级域名冲突)

附录:作业环境简介

此文建立在使用 MvsCode/frps-onekey: Frps 一键安装脚本 & 管理脚本 A tool to auto-compile & install frps on Linux (github.com)和使用 OpenWrt 提供的 Frp 客户端的基础之上,与手动安装 frp 总体的操作逻辑一致,可以相互套用。

总体比较推荐使用可视化较强的一键安装脚本和自带 frp 客户端的 OpenWrt 或者 LEDE 软路由进行配置,所见即所得,能够减少错误的发生少走一些弯路。

参考链接:

腾讯云搭建 frp 服务端实现内网穿透 | 登山亦有道 (chenyan98.cn)

frps 服务器与宝塔面板共用 80 端口的方法 | 星光博客 (xgboke.com)

© 版权声明
THE END
喜欢就支持一下吧
点赞50赞赏 分享
评论 抢沙发
匿名的头像 - 登山亦有道
提交
匿名的头像 - 登山亦有道

昵称

在 WordPress 上使用 Sticker Heo 增添互动时的乐趣吧 !

取消
昵称表情代码图片

    暂无评论内容