frp配置https + nginx
时间: 2024-10-01 15:07:13 浏览: 39
FRP (Fast Reverse Proxy) 是一个轻量级的高性能远程访问代理服务,常用于穿透企业内网、防火墙等场景。当需要将HTTPS流量通过FRP转发到内部服务器时,你需要配置FRP服务器以支持HTTPS,并结合Nginx做反向代理。
首先,确保FRP服务器配置文件(frps.ini)已启用HTTPS支持:
```ini
[web]
type = http
ip = 0.0.0.0
port = 7443 # HTTPS监听端口
ssl = true
cert = /path/to/frpc.crt # 证书路径
key = /path/to/frpc.key # 私钥路径
```
然后,创建FRPC客户端配置文件(frpc.ini),连接到FRPS并指定应用服务:
```ini
[web]
server = your.frps.url:7443
token = your_token # FRPS验证令牌
domain = example.com # 自定义域名
local_ip = 你的本地IP地址
local_port = 你的服务端口(比如8080)
type = https
```
接着,设置Nginx作为FRP的反向代理,配置一个虚拟主机来处理来自FRP的请求:
```nginx
server {
listen 443 ssl;
server_name example.com; # 使用上述配置中的域名
ssl_certificate /path/to/nginx.crt;
ssl_certificate_key /path/to/nginx.key;
location / {
proxy_pass http://$remote_addr:$proxy_port;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Sec-WebSocket-Key $upstream_http_SEC_WEBSOCKET_KEY;
}
}
```
最后,启动FRPS和FRPC服务,并确保它们可以互相通信。当外部用户通过`https://example.com`访问时,Nginx会将请求转发给FRP,由FRP再转发至对应的内部服务器。
阅读全文