让 frp 和 nginx 一起使用 80 端口

不知不觉又几个月没更新博客了……

frp 是一个内网穿透工具,可通过一台公网服务器,将内网的网站或其它服务提供给外部访问,同类工具还有 ngrok 等。而像我这种小屌丝一般只有一台公网 vps 上面还放着好几个网站,那 80 端口就被 nginx 之类的服务占用了,还怎么给 frp 使用呢?

其实只要给 nginx 增加一个简单的配置,就可以将某个域名的流量转发给 frp 了,还可以通过泛解析来映射不同的网站。

配置 nginx:

server {
    listen 80;
    server_name *.frp.example.com;
    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header    Host            $host:80;
        proxy_set_header    X-Real-IP       $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_hide_header   X-Powered-By;
    }
}

非常简单的一个 server 模块,监听 *.frp.example.com 并转发给 127.0.0.1:8080,所以接下来只要将 frp 默认监听 80 端口改成 8080 端口就好了。

配置 frp 服务端:

[common]
bind_addr = 0.0.0.0
bind_port = 7000
vhost_http_port = 8080
subdomain_host = frp.example.com

[abc]
type = http
subdomain = abc
auth_token = XXX

这基本就是一个最小配置了,重点在于将 vhost_http_port 设为 8080,其它基本是一致的。

配置 frp 客户端:

[common]
server_addr = 123.123.123.123
server_port = 7000
auth_token = XXX

[abc]
type = http
local_port = 80
subdomain = abc

最后这是 frp 客户端的配置文件,没什么特殊之处,以备后用。现在直接访问 abc.frp.example.com 就可以访问到本地的网站咯~

上一篇: 指尖陀螺入手

下一篇: 没有了