前言
本站之前介绍过在LNMP
环境下的 nginx 和 frps 共存配置教程,不过也有小伙伴咨询宝塔面板上配置的方法.鉴于大部分小伙伴只一台服务器,并且已经部署过网站,想同时使用 frps 服务,本文将介绍在宝塔面板的 LNMP 环境来配置 nginx 和 frps 共存 80/443 端口及泛域名支持的方法.
配置 Nginx 和 frps 共存 80/443 端口及泛域名支持教程
配置流程
宝塔面板 nginx 配置
按照常规方法安装宝塔面板,并在宝塔面板上安装LNMP
环境.尝试添加一个网站确保服务能正常运行.如果已有网站正常运行,可以忽略此步.
查询 nginx 配置文件
宝塔面板的nginx
主配置文件所在目录为/www/server/nginx/conf
常规情况下并不会修改默认配置文件,可以执行以下命令查看include
的目录.
cat /www/server/nginx/conf/nginx.conf
默认配置中显示include
的目录为/www/server/panel/vhost/nginx
,即在此目录下的conf
文件也可以被 nginx 使用.宝塔面板上创建的网站域名配置文件也在此目录.
查询站点目录
进入/www/server/panel/vhost/nginx
目录可以看出之前创建的test.ioiox.com
的配置文件也在此.
提前配置证书
证书文件可以手动上传,也可以使用已运行的网站证书,其目录为/www/server/panel/vhost/cert
.
创建 frps.conf
在上文查询的站点目录创建frps.conf
配置文件
vi /www/server/panel/vhost/nginx/frps.conf
参考以下配置文件,注意修改域名
,证书路径
和反代端口
,本文以1234
为例.
server {
listen 80;
server_name *.yourdomain.com;
# return 301 https://$host$request_uri;
location / {
proxy_pass http://127.0.0.1:1234;
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;
}
}
server {
listen 443 ssl http2;
server_name *.yourdomain.com;
ssl_certificate /www/server/panel/vhost/cert/yourdomain.crt;
ssl_certificate_key /www/server/panel/vhost/cert/yourdomain.key;
client_max_body_size 50m;
client_body_buffer_size 256k;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
proxy_connect_timeout 300s;
proxy_read_timeout 300s;
proxy_send_timeout 300s;
proxy_buffer_size 64k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_ignore_client_abort on;
location / {
proxy_pass http://127.0.0.1:1234;
proxy_redirect https://$host/ https://$http_host/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_ssl_server_name on;
proxy_set_header Host $host;
}
}
frp 配置
frps.ini
由于 nginx 占用80/443
端口,frps.ini
中的vhost_http_port
和vhost_https_port
需修改为其他端口,本文以1234
和5678
为例.
frpc.ini
如果 frps.ini
配置了 subdomain_host
泛域名,那么 frpc.ini
中域名参数需使用 subdomain = xx
仅填写二级域名主机头即可,不要
填写完整域名.
如果 frps.ini
没有配置 subdomain_host
泛域名,那么 frpc.ini
中域名参数需使用 custom_domains = xx.xxx.com
需填写完整的域名.
结语
感谢在上文中的网友留言给出了宝塔面板上的共存解决方案.
更多FRP内网穿透相关技巧,教程及信息,请持续关注本站FRP内网穿透专栏:
16 条评论
所以这一篇的处理思路总结一下就是,Nginx 作为总入口,使用 80/443端口,一个服务器上的 frps 和 网站 等各种其他服务,地位并列,都作为 Nginx 代理对象
对头
很快也要建站了,到时候给楼主加个友链推荐一下
欢迎欢迎
你都实现了 bitwarden 不加端口了.这待解决的问题不是一样的么
proxy_pass 到 frps 8443
frps和frpc也用https协议连
这样试试呢
目前这种方式实际测试在http下可用,在https下不太好用,而且在https下typecho博客网站是只能访问主页,无法访问其他页面,会出现404
不知道能不能直接修改网站本身的的配置,不要增加其他配置,会影响别的网站
我这边按照你的frps.conf修改了,但是我输入nas.iliuqi.com还是跳转到我的服务器网站上,而不是我要穿透的页面
我测试了也是这样。因为没看出对访问网站www.yourdomain.com和穿透nas.yourdomain.com的请求的不同处理。 我是小白,网络上也确实没找到完美的方案。我也是像@isaac说的那样只修改网站本身配置。可是一直没弄好。
谢谢