Nginx 和 frps 共用80端口

管理员组 正在充电 7月前 853

之前用frp做内网穿透,把内网的服务器开放到外网。

如果是http服务的话,80端口的做法是使用二级域名xxx做个A记录指一台没有nginx 之类的服务器IP,然后用浏览器打开xxx.example.com就打开了。其他端口是在frpc.ini里指定的,就加个端口号如xxx.example.com:1234就打开了,这种情况用于外网服务器已经有nginx在运行占用了80端口, 这时如果不想用端口号来打开,就要做三级域名解析,同时nginx做反向代理,把这个1234端口代理到80.

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

server {
    listen 80;
    server_name *.frp.example.com;    location / {
        proxy_pass http://127.0.0.1:8081;
        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;
    }
}

上面这段写入/etc/nginx/sites-avaliable/default的最后面,监听*.frp.example.com, 并转发给127.0.0.8081, 接下来只要将frp默认监听 80 端口改成 8081 端口就好了.

#配置 frp 服务端
[common]
bind_addr = 0.0.0.0
bind_port = 7005
vhost_http_port = 8081
token = 123456
max_pool_count = 1
subdomain_host = frp.example.com

[http_80]
type = http
local_ip = 127.0.0.1             
local_port = 80  
subdomain = xxx  # 访问:http://xxx.frp.example.com


如果服务端subdomain_host属性不为空

只需要将 *.{subdomain_host} 解析到 frps 所在服务器IP

之后用户可以通过 subdomain 自行指定自己的 web 服务所需要使用的二级域名

通过 {subdomain}.{subdomain_host} 来访问自己的 web 服务。


**服务器域名解析操作总结: 例如 A记录 *.freefrp  、freefrp 到服务器IP , 客户端subdomain属性才生效 


最新回复 (0)
返回
发新帖
免责声明:本站部分资源来源于网络,如有侵权请留言告知我们处理!