配置nginx保证frps服务器与web共用80端口的方法
首先你会有个疑惑,frp是什么呢?简单的说frp就是内网穿透工具,配置好客户端以后,可以通过服务器来访问内网。
现在我的服务器,已经用nginx 做站了,80端口只有一个,那如果frp的服务端也想使用80端口,那应该怎么办呢?
经过查询,这个是可以实现的,就是利用nginx的反向代理来实现。
补充一下:frps就是服务器端(server),frpc就是客户端(client)。
第一步:修改服务器中nginx.conf配置文件
在nginx.conf中http{ }里添加以下参数,
server { listen 80; server_name xiaoyue.ml www.xiaoyue.ml; location / { proxy_pass http://127.0.0.1:8080; 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; } }
如下图,设置好后保存,重启nginx
第二步:修改frp服务端配置文件
既然反向代理到了8080端口,那么frp服务端的配置文件也需要进行设置
frps.ini配置文件中vhost_http_port = 8080端口
第三步:修改frp客户端配置文件
第一步配置中:server_name xiaoyue.ml www.xiaoyue.ml; 这里填写对应域名。
也支持泛解析,例如:server_name *.xiaoyue.ml;需要域名同时进行泛解析才行。
那么frpc.ini怎么修改呢,很简单
对应穿透服务配置里配置好对应域名,custom_domains = xiaoyue.ml
第四步:
服务器中重启frps,本地电脑中启动frpc,就可以在浏览器中通过80端口直接访问xiaoyue.ml了。
补充一下1:
xiaoyue.ml是解析到我的服务器中,而这个网站是搭建在局域网里面我自己的电脑中。
也就是首先保证你电脑上访问127.0.0.1,是有内容的哦。
补充一下2:
第一步的反向代理也可以这么做
宝塔后台
1)网站-->添加站点,输入你的域名
比如输入添加的域名xiaoyue.ml 提交
2)点击设置-->反向代理
目标URL 中填写 http://127.0.0.1:8080 ,请勿输入错误
选择 启用反向代理
PS:是不是看的有点懵。。。
其实本文核心就一步,那就是将比如你访问xiaoyue.ml(默认情况下,我们访问网站都是80端口),反向代理到xiaoyue.ml:8080端口而已。
那这样做有什么意义呢,就是想直接通过域名访问,而不是通过域名:端口号访问网站。