nginx 和 frp共用80端口

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

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

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

配置 nginx:

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_port = 8787  vhost_http_port = 8081  token = passwd  max_pool_count = 100  subdomain_host = frp.example.com    [xxx]  type = http  subdomain = xxx  

重点在于将 vhost_http_port 设为 8081, 还可以在common下加上dashboard相关的端口,用户,密码等信息。

配置 frp 客户端:

[common]  server_addr = exampel.com  server_port = 8787  token = passwd  login_fail_exit = false    [xxx]  type = http  local_port = 80  subdomain = xxx  

域名设置:

1, 增加二级域名frp的A解析,到外网服务器IP.

  1. 增加三级域名泛解析*.frp的CNAME解析,到frp.example.com.

这时要做完这2个域名解析就可以用xxx.frp.example.com访问了。

参考:http://www.miss.cat/frp-use-80-port-with-nginx/

https://blog.csdn.net/qq_36560161/article/details/79646523

如果是ssh,frpc如下面配置的话,还是一样的,跟http上面讲的东西没有关系:

[common]  server_addr = example.com  server_port = 8787  token = passwd  login_fail_exit = false    [ssh-xxx]  type = tcp  local_ip = 127.0.0.1  local_port = 22  remote_port = 5000  

还是这样登录:

ssh [email protected] -p5000  

原文出处:allstack -> http://allstack.net/wordpress/post-3690.html

本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如果侵犯你的利益,请发送邮箱到 [email protected],我们会很快的为您处理。
超哥软件库 » nginx 和 frp共用80端口