nginx与frp内网穿透同时使用80端口
2021/11/17 7:13:53
本文主要是介绍nginx与frp内网穿透同时使用80端口,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
nginx与frp内网穿透会同时使用80端口,如果修改其中某一个服务的端口,那么用域名访问时就必须加上端口号。该文介绍一种方法,能够让nginx与frp同时使用80端口,它的原理是修改frp端口为非80端口,并使用nginx代理该端口。
举例:在域名 www.abc.com 与 www.def.com 解析到同一ip地址的情况下,想要通过访问 www.abc.com 连接到nginx服务,访问 www.def.com 连接到frp服务。这样就能够将nginx和frp安装在同一台机器上,并且共用80端口,无需在域名后追加端口号访问。
0 目录
1 准备工作
1 系统
2 必需组件
2 nginx的安装
1 安装过程
2 可能遇到的问题
3 frp的安装
1 安装过程
2 配置过程
1 准备工作
1 系统
ubuntu16.04(已测),ubuntu18.04,ubuntu20.04(已测)
*其它系统版本略有差异,但差异不大,操作步骤请按实际情况修改。
2 必需组件
操作过程中会用到:wget(下载文件用), tar(解压缩), nano(文本编辑器,vi/vim也可)。如果已有这些组件,可跳过该步骤。
sudo apt-get update #安装wget sudo apt-get install wget #安装tar sudo apt-get install tar #安装nano sudo apt-get install nano
2 nginx的安装
1 安装过程[1]
#必须更新资源列表,才能获得最新的版本 sudo apt-get update #安装nginx sudo apt-get install nginx #验证是否安装成功 nginx -V #启动nginx服务 service nginx start
此时访问服务器域名,若出现nginx的欢迎界面,说明安装成功。
nginx安装完成后的文件路径:
主程序 /usr/sbin/nginx
配置文件目录 /etc/nginx
静态文件目录 /usr/share/nginx
日志目录 /var/log/nginx
2 可能遇到的问题
在ubuntu系统中(其它系统未测),会遇到修改静态文件 index.html 但无效的情况。无论怎么修改,都一直显示nginx的欢迎页面。这是因为nginx的默认配置中,静态页面文件指向了/var/www/html,所以修改 /usr/share/nginx 下的文件不会生效,我们只需将其路径改为 /usr/share/nginx 即可。
1 编辑default文件
sudo nano /etc/nginx/sites-available/default
找到 root /var/www/html; 并将其替换为 root /usr/share/nginx/html;
2 重新加载nginx使配置生效
nginx -s reload
3 frp的安装
1 安装过程
使用 wget 通过链接下载frp, 在这里可以找到最新版本的frp链接。
#为方便演示,本文将frp安装在/root目录下 cd /root
#下载frp wget https://github.com/fatedier/frp/releases/download/v0.38.0/frp_0.38.0_linux_amd64.tar.gz #解压 tar -xvf frp_0.38.0_linux_amd64.tar.gz #进入目录 cd frp_0.38.0_linux_amd64 #修改配置文件 sudo nano frps.ini
请注意,此时应该先修改配置文件再启动。因为nginx已经占用了80端口,如果直接启动frp,会出现错误。我们应该首先将frp改为非80端口(本文中改为81)。
#以下为 frps.ini 修改后的内容,注意http的端口已经修改为非80端口 [common] bind_port = 7000 vhost_http_port = 81 vhost_https_port = 444 token=abcdefg
配置文件修改完成后,以静默方式启动frp。
#静默方式启动frp(请在frp目录下执行该段代码,否则会报错) nohup ./frps -c ./frps.ini &
2 配置过程
此时,nginx监听80端口,frp监听81端口,我们还需要配置nginx,将对frp的请求转发到81端口。
sudo nano /etc/nginx/nginx.conf
在http的末尾加入如下配置:
server { listen 80; server_name *.def.com *.deff.com *.defff.com; #如有多个域名,用空格隔开 location / { proxy_pass http://127.0.0.1:81; #将server_name的请求转发到81端口 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使配置生效。
nginx -s reload
此时,访问 www.def.com,即可显示frp页面;访问www.abc.com,显示nginx页面。
注意事项
1. 在静默运行frp时,应该在frp目录下执行运行命令。
2. centos系统默认开启防火墙,会造成某些端口不可用。
3. 修改frp配置文件后,需要重新启动程序才能生效。
重新启动frp方法:
#查看frps的进程号 ps -e | grep frps #根据进程号结束进程 kill 13013 #再次运行frps(在frp目录下运行) nohup ./frps -c ./frps.ini &
参考资料
[1] ubuntu安装nginx_小雪的博客-CSDN博客_ubuntu安装nginx
这篇关于nginx与frp内网穿透同时使用80端口的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-29Nginx发布学习:从入门到实践的简单教程
- 2024-10-28Nginx发布:新手入门教程
- 2024-10-21nginx 怎么设置文件上传最大20M限制-icode9专业技术文章分享
- 2024-10-17关闭 nginx的命令是什么?-icode9专业技术文章分享
- 2024-09-17Nginx实用篇:实现负载均衡、限流与动静分离
- 2024-08-21宝塔nginx新增8022端口方法步骤-icode9专业技术文章分享
- 2024-08-21nginx配置,让ws升级为wss访问的方法步骤-icode9专业技术文章分享
- 2024-08-15nginx ws代理配置方法步骤-icode9专业技术文章分享
- 2024-08-14nginx 让访问带有/relid的地址返回404 ,例子 /relid-x-0.36-y-131.html-icode9专业技术文章分享
- 2024-08-14nginx 判断地址有/statics/的路径,指向到/home/html/statics/目录-icode9专业技术文章分享