我使用以下命令将80
重定向到3000
。来自任何域的所有请求都重定向到3000
:
sudo iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000
必须进行处理:一个监听80001
,另一个侦听8002
,如何将两个域链接到这两个端口?
是否可以像下面这样配置JSON?
[
{
"port": 8001,
"domains": ["example.com", "example2.com"]
},
{
"port": 8002,
"domains": ["domain.com", "domain2.com"]
}
]
那么,domain.com
,domain2.com
将把它们的请求发送到侦听8002
和8001
上的其他两个域的进程?
发布于 2014-08-19 13:20:10
发布于 2014-08-19 14:19:32
使用apache
:
这可能是一个简单的起点--特别是当您考虑使用apache
托管两个进程时。请注意,正如@Tony所提到的,有更有效的代理可用,如果您没有使用apache
来承载您的进程,这些代理肯定值得考虑。
您需要为您的特定发行版找到httpd.conf
文件。它们的名称和位置各不相同,因此您必须阅读文档或Google。下面的示例基于CentOS 7(运行apache
v2.4)
在/etc/httpd/conf/httpd.conf
文件中添加:
<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不能从外部访问。
发布于 2014-08-19 12:00:31
当您使用DNAT时,可以使用以下命令:
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换成你的机器。
https://unix.stackexchange.com/questions/150917
复制相似问题