首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将域重定向到同一台机器上的不同端口

将域重定向到同一台机器上的不同端口
EN

Unix & Linux用户
提问于 2014-08-19 10:27:30
回答 3查看 13.9K关注 0票数 2

我使用以下命令将80重定向到3000。来自任何域的所有请求都重定向到3000

代码语言:javascript
运行
复制
sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000

必须进行处理:一个监听80001,另一个侦听8002,如何将两个域链接到这两个端口?

是否可以像下面这样配置JSON?

代码语言:javascript
运行
复制
[
    {
       "port": 8001,
       "domains": ["example.com", "example2.com"] 
    },
    {
       "port": 8002,
       "domains": ["domain.com", "domain2.com"] 
    }
]

那么,domain.comdomain2.com将把它们的请求发送到侦听80028001上的其他两个域的进程?

EN

回答 3

Unix & Linux用户

回答已采纳

发布于 2014-08-19 13:20:10

通常,您必须使用虚拟主机国防部_代理 (用于Apache)来安装您的web服务器。

但是,我建议您使用反向代理(如哈代 )来处理这个问题。安装Haproxy,以便它侦听端口80,并使用域名上的ACL引导您的流量到您的the服务器。使用监听127.0.0.1:8002和127.0.0.1:80001的虚拟主机安装您的and服务器(如果haproxy运行在同一台服务器上)。

很简单的设置。

看看这个例子。它用于将haproxy放在Docker容器的前面,但您可以根据您的需要对配置进行调整。

票数 7
EN

Unix & Linux用户

发布于 2014-08-19 14:19:32

使用apache

这可能是一个简单的起点--特别是当您考虑使用apache托管两个进程时。请注意,正如@Tony所提到的,有更有效的代理可用,如果您没有使用apache来承载您的进程,这些代理肯定值得考虑。

您需要为您的特定发行版找到httpd.conf文件。它们的名称和位置各不相同,因此您必须阅读文档或Google。下面的示例基于CentOS 7(运行apache v2.4)

/etc/httpd/conf/httpd.conf文件中添加:

代码语言:javascript
运行
复制
<VirtualHost example.com:80>
    ProxyPass / http://localhost:8001
    ProxyPassReverse / http://localhost:8001
</VirtualHost>

<VirtualHost example2.com:80>
    ProxyPass / http://localhost:8001
    ProxyPassReverse / http://localhost:8001
</VirtualHost>

<VirtualHost domain.com:80>
    ProxyPass / http://localhost:8002
    ProxyPassReverse / http://localhost:8002
</VirtualHost>

<VirtualHost domain2.com:80>
    ProxyPass / http://localhost:8002
    ProxyPassReverse / http://localhost:8002
</VirtualHost>

您需要重新启动(或重新加载) apache,以使其读取新的配置。

使用防火墙确保端口8001和8002不能从外部访问。

票数 2
EN

Unix & Linux用户

发布于 2014-08-19 12:00:31

当您使用DNAT时,可以使用以下命令:

代码语言:javascript
运行
复制
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 10.10.10.10:8001

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 10.10.10.10:8002

你必须把10.10.10换成你的机器。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/150917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档