centos服务器,nginx和frp如何共用80端口?
发布于 作者:苏南大叔 来源:程序如此灵动~
在上一篇文章中,苏南大叔在一个已经安装了nginx的centos服务器上面,再次安装frp服务,导致两者端口冲突。主要体现在对80和443端口的争夺中。然后后来者frp做出妥协,使用新的端口9980和9981。但是,这样的结局是,访问frp的www服务的时候,就必须带上端口9980的字样,这是个很不爽的issue。

本文,就是解决这个问题的,让80端口也能访问frp服务。
原理描述
nginx和frp共用80端口的原理,其实说起来也挺简单的。就是frp还是用非80端口,然后nginx做反向代理。也就是说,80端口访问的是nginx,nginx再根据域名(或者说根据设置的server_name值),反向代理到frp的非80端口。
nginx配置
nginx配置如下,当然,这个过程中,根据您的基本情况,相关配置肯定还是有所改变的。所以,大家不要照抄下面的配置。搞清楚原理,再做修改。
server
{
listen 80;
server_name <your_domain>;
location / {
proxy_pass http://127.0.0.1:<your_frp_port>;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
关于frp的端口补充说明
到现在为止,苏南大叔要在内网提供www服务的基本目的,基本上算是达到了。反过来看看frp的端口设置,一共需要开放的4个端口,实际上仅仅需要一个5443端口,用于frp的客户端连接,就可以了。其它的三个端口,完全可以禁止访问。

结论
就仅仅是个nginx反代功能罢了,但是却解决了frp不能用80端口的问题。所以,nginx还是挺有潜力可挖的。更多苏南大叔代理的frp和nginx的经验文章,请点击下面的连接查看: