1 个回答
满意答案
这需要frp客户端和nginx配合来实现跳转
你的nginx并不知道用户实际访问是http还是https,因为frp客户端在连接到内网的web服务器时都是通过80端口,所以只需要想办法告诉nginx用户是通过http还是https问题问题就能解决了
可以在frp客户端上配置加一个请求头,告诉nginx用户是用http访问的
加入配置 header_X-From-ssl = no
比如某个站点的配置修改后是这样的
type = http
local_ip = 192.168.2.211
local_port = 80
header_X-From-ssl = no
custom_domains = abc.net,www.abc.net
use_encryption = true
use_compression = true
然后重启frp客户端
在web服务器nginx配置中加入
if ($http_x_from_ssl = 'no'){
return 301 https://$host$request_uri;
}
判断是否有在frp中自定义的请求头,如果有则代表是用http访问,那么就301跳转到https协议的网址
保存之后重启nginx
发布于:2年前 (2023-02-25) IP属地:江苏省
我来回答
您需要 登录 后回答此问题!