首页
关于
Search
1
frp和宝塔(Nginx)共用80/443(http,https),真正解决https穿透502问题,支持泛域名穿透
23,387 阅读
2
Navicat 取所有列名
22,926 阅读
3
GitHub 克隆加速 下载加速 镜像加速
14,204 阅读
4
Linux创建service服务
13,504 阅读
默认分类
Navicat
Linux
登录
/
注册
Search
标签搜索
Navicat
Linux
github
frp
宝塔
frp穿透
空空大师
累计撰写
4
篇文章
累计收到
18
条评论
首页
栏目
默认分类
Navicat
Linux
页面
关于
搜索到
1
篇与
的结果
2021-12-29
frp和宝塔(Nginx)共用80/443(http,https),真正解决https穿透502问题,支持泛域名穿透
相信能找到这个文章的你也踩了不少坑,网上一些文章基本上都是穿透的80端口,穿透443端口或多或少的都有些问题。大部分小伙伴只一台服务器,并且已经部署过网站,,如果同时使用 frp 服务的话就会存在共享80/443端口的问题,本文将介绍在宝塔配置 nginx 和 frp 共享 80/443 端口和泛域名支持的方法,基本思路通过服务端Nginx(使用的80/443)来配置域名监听并且反向代理到frp所在的http和https端口(frp服务端端口不是 80/443,要改为其它端口如 808/809,本例80用的808,443用的是809),然后frp服务端穿透到frp客户端实现网络访问,本文采用的是tcp转发的方式,没使用frp的 http 和 https 为什么这么干呢,是因为我们要使用80/443二个端口的穿透,而frp只支持单个端口的泛域名转发,具体请看我提的 Issues ,并且frp官方文档上说http和https的实现底层也是tcp。废话不多说直接开始Frp服务端配置[common] # 如果有多个IP,可以选择绑定到不同的ip上 bind_addr = 0.0.0.0 bind_port = 7000 # udp port to help make udp hole to penetrate nat bind_udp_port = 7001 # udp port used for kcp protocol, it can be same with 'bind_port' # if not set, kcp is disabled in frps kcp_bind_port = 7000 # 虚拟主机配置,不能和系统中已监听的端口冲突。http和https可以设置成同一个 #vhost_http_port = 908 #如果采用单端口泛域名转发可以采集此方式 #vhost_https_port = 909 #如果采用单端口泛域名转发可以采集此方式 allow_ports = 808,809 #808为http端口,809为https端口 # 服务端web面板 dashboard_addr = 0.0.0.0 dashboard_port = 7500 # 设置用户名密码,默认都是admin,请注意做修改 dashboard_user = admin dashboard_pwd = 123qwe # 普罗米修斯运维服务,go语言相关监控,可以关闭 enable_prometheus = false # 设置日志文件地址 log_file = /var/log/frps.log # trace, debug, info, warn, error log_level = info log_max_days = 3 # 最新版本支持的验证方式比较多,这里还是选用token模式 # AuthenticationMethod specifies what authentication method to use authenticate frpc with frps. # If "token" is specified - token will be read into login message. authentication_method = token # AuthenticateHeartBeats specifies whether to include authentication token in heartbeats sent to frps. By default, this value is false. authenticate_heartbeats = false # AuthenticateNewWorkConns specifies whether to include authentication token in new work connections sent to frps. By default, this value is false. authenticate_new_work_conns = false # auth token 相当于密码,请注意保护 token = 123qweFrp客户端配置[common] server_addr = frp.abc.com #你的服务器IP或域名 server_port = 7000 token = 123qwe [webhttp] type = tcp local_ip = 127.0.0.1 local_port = 80 #本地端口 remote_port = 808 #服务器端口 [webhttps] type = tcp local_ip = 127.0.0.1 local_port = 443 #本地端口 remote_port = 809 #服务器端口宝塔服务器端Nginx配置 server { listen 80; server_name *.abc.com; # return 301 https://$host$request_uri; #取消此注释可以使80自动跳转443,取消注释时别忘了注释location节点 location / { proxy_pass http://$host:808; #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; resolver 114.114.114.114; } } server { listen 443 ssl http2; server_name *.abc.com; ssl_certificate /www/server/nginx/conf/ssl/fullchain51.pem; ssl_certificate_key /www/server/nginx/conf/ssl/privkey51.pem; location / { proxy_pass https://$host:809; #通过域名访问frp服务 #proxy_redirect https://$host/ https://$http_host/; proxy_ssl_server_name on; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $host; resolver 114.114.114.114; } }宝塔客户端Nginx配置就按宝塔正常流程进行网站的新建和管理就可以,如果使用多域名的话,要在宝塔Nginx服务端先反代相关的域名。特别说明如果此文对你有帮助,请关注留言,转发请标记原文地址,谢谢。
2021年12月29日
23,387 阅读
4 评论
2 点赞