全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

IP归属甄别会员请立即修改密码
查看: 387|回复: 7
打印 上一主题 下一主题

一个奇葩的反向代理问题

[复制链接]
跳转到指定楼层
1#
发表于 2024-11-13 14:51:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 BigBug 于 2024-11-13 15:31 编辑

环境bt面板
两个域名
A.COM
B.COM
这俩域名都绑定在同一个ip的同一台服务器上面
宝塔面板显示有两个网站
A.COM
B.COM

先实现目的:想用A.COM反向代理B.COM。

操作的方式:B.COM里面放着网站程序,新建了A.COM的一个新站点  然后再反向代理里面设置了反向代理A.COM的设置

为啥有这个脱裤子放屁的行为:因为B.COM有程序的授权,A.COM没有。所以用B.COM的三级域名新建网站 用A.COM反代

问题:有没有更高效的方法,在同一台服务器里面,用域名反代感觉有点绕远了


听劝 已上图
2#
发表于 2024-11-13 14:59:08 | 只看该作者
B网站里面添加一个域名指向,127.0.0.1:随机一个端口号
A.com反代 这个127.0.0.1:随机端口号。

跳过了A反代时寻找b.com dns解析这一步。端口也不用开外网访问。

但是你确定你的程序,授权在B,用A反代能访问?不会禁止?
3#
 楼主| 发表于 2024-11-13 15:15:39 | 只看该作者
本帖最后由 BigBug 于 2024-11-13 15:24 编辑
我真是小号 发表于 2024-11-13 14:59
B网站里面添加一个域名指向,127.0.0.1:随机一个端口号
A.com反代 这个127.0.0.1:随机端口号。


6啊 大佬   我试试
不对不对
有点不对劲 哈哈 这样的话访问的时候不是访问的a域名  是访问127.0.0.1  这样的话不就没绕过授权码
4#
发表于 2024-11-13 15:17:45 | 只看该作者
蹲一个后续。
我最开始也觉得是nc行为,后来看到了解释。
5#
发表于 2024-11-13 15:26:15 | 只看该作者
我差点被自己绕晕,最后还是给你问问AI

在同一台服务器上,使用域名反向代理确实可以实现你的需求,但你觉得这种方法有点绕远,可以考虑以下几种更高效的方法:

方法一:使用Nginx或Apache的虚拟主机配置
你可以直接在Nginx或Apache的配置文件中设置反向代理,而不需要通过宝塔面板进行操作。这样可以更直接地控制反向代理的行为。

Nginx配置示例:
编辑Nginx配置文件,通常位于 /etc/nginx/nginx.conf 或 /etc/nginx/conf.d/ 目录下。
添加以下配置:

server {
    listen 80;
    server_name A.COM;

    location / {
        proxy_pass http://B.COM;
        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_set_header X-Forwarded-Proto $scheme;
    }
}
重新加载Nginx配置:

sudo nginx -s reload
Apache配置示例:
编辑Apache配置文件,通常位于 /etc/httpd/conf/httpd.conf 或 /etc/apache2/sites-available/ 目录下。
添加以下配置:

<VirtualHost *:80>
    ServerName A.COM

    ProxyPreserveHost On
    ProxyPass / http://B.COM/
    ProxyPassReverse / http://B.COM/
</VirtualHost>
重新加载Apache配置:

sudo systemctl reload apache2
方法二:使用Docker容器
如果你熟悉Docker,可以考虑将B.COM的程序放在一个Docker容器中,然后通过Nginx或其他反向代理服务器将A.COM的请求转发到这个容器。

Docker配置示例:
创建一个Docker容器运行B.COM的程序。
配置Nginx或Apache将A.COM的请求转发到这个容器。

server {
    listen 80;
    server_name A.COM;

    location / {
        proxy_pass http://localhost:8080;  # 假设Docker容器的端口是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_set_header X-Forwarded-Proto $scheme;
    }
}
方法三:使用宝塔面板的高级功能
如果你更喜欢使用宝塔面板,可以尝试使用宝塔面板的高级功能来优化反向代理配置。宝塔面板提供了一些高级设置,可以帮助你更好地管理反向代理。

总结
以上几种方法都可以帮助你在同一台服务器上实现A.COM反向代理B.COM的需求。选择哪种方法取决于你的技术栈和个人偏好。如果你对服务器配置比较熟悉,直接编辑Nginx或Apache配置文件可能是最高效的方法。如果你更喜欢图形界面,可以继续使用宝塔面板并尝试其高级功能。
6#
发表于 2024-11-13 15:31:36 | 只看该作者
BigBug 发表于 2024-11-13 15:15
6啊 大佬   我试试
不对不对
有点不对劲 哈哈 这样的话访问的时候不是访问的a域名  是访问127.0.0.1  这 ...

我也有点晕了。要不就还是按你的方案,然后在服务器Hosts上把B.com指向你的服务器ip。这样也跳过解析dns一步
7#
 楼主| 发表于 2024-11-13 15:32:24 | 只看该作者
ymh1147 发表于 2024-11-13 15:26
我差点被自己绕晕,最后还是给你问问AI

在同一台服务器上,使用域名反向代理确实可以实现你的需求,但你觉 ...

这个ai说的不太对的哦 大佬
8#
发表于 2024-11-13 15:34:29 | 只看该作者
本帖最后由 ymh1147 于 2024-11-13 15:35 编辑
BigBug 发表于 2024-11-13 15:32
这个ai说的不太对的哦 大佬


人都能被绕晕,你就别求AI能太聪明

简单点说,你只有B有授权,A再怎么反代也不是A的授权,用的还是B的,这个相当于一个镜像站,没啥实际意义
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-10-18 02:46 , Processed in 0.075633 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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