全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworksBGVM服务器IP归属甄别会员请立即修改密码
查看: 1342|回复: 1

nginx反向代理frp实现端口后缀隐藏 (伪)共用端口

[复制链接]
发表于 2021-9-15 11:08:15 | 显示全部楼层 |阅读模式
由于服务器只有一个ip,80端口用起来比较方便,访问自己的一些服务不需要加个端口后缀,服务器运行多个服务需要大量端口,网上搜索了一大堆分享的教程,初步实现了自己的目的

frps配置
这里的端口设置不同于nginx 的端口,避免冲突无法启动,这个端口无须用户自己直接使用,随便写一个端口就行~~~实际上只是用于用户访问nginx后,nginx 再转发请求给这个端口;达到省略后面端口的效果

vhost_http_port = 8080
vhost_https_port = 8443
1
2
frpc配置
端口号直接写nginx 代理的端口 ,你自己使用起来方便就行 .譬如80/443

remote_port = 443
custom_domains = ex1.example.com
1
2
nginx配置
#https配置
  server{
        listen 443 ssl;
        ssl_certificate /usr/local/xxx.pem; #你的ssl证书
        ssl_certificate_key /usr/local/xxx.key; #你的ssl key
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        server_name ex1.example.com; //通配符或者具体域名,看需求 我这里有多个证书域名,所以和http分开了
        location / {
                proxy_redirect off;
                proxy_set_header Host $host;
                proxy_ssl_server_name on;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                #参考 链接: [link](https://www.v2ex.com/t/378393).
                #这里要写死**域名**才行 **不要写ip**  端口就是frps里的vhost_https_port
                #htts://[custom_domains ]:[vhost_https_port]
                proxy_pass https://ex1.example.com:8443;
                proxy_ssl_session_reuse on;
        }
#       access_log off;
  }
  #http配置
  server{
        listen 80;
        server_name *.example.com;
        location / {
                        //服务器的ip和端口   http://[ip]:[port]   vhost_http_port
                proxy_pass http://your_ip:8080;
                proxy_set_header Host $host;
                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;
        }
        access_log off;
  }


嗯,到这里应该能隐藏访问地址的端口号了
直接使用https://ex1.example.com 来访问就行,达到和直接访问https://ex1.example.com:8443一样的效果
其他的非加密请求http://ex2.example.com也可以访问
简单说就是 用户访问nginx 80/443端口,nginx再去访问带非通用默认端口的frp地址返回给用户
#参考 链接: link https://www.v2ex.com/t/378393
发表于 2021-9-15 13:17:03 | 显示全部楼层

宝塔 永远的神
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2021-10-25 10:09 , Processed in 0.058252 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表