Sim*_*one 4 iptables redirect apache-2.2
抱歉标题,但我是服务器配置的新手。我有问题(当然),我会尽力向您解释:
我的问题是网络服务器需要将连接从端口 80 重定向到 8080,所以我的 ruby 开发人员(不是我,我很喜欢 ruby)做了一个重定向
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
Run Code Online (Sandbox Code Playgroud)
当然,作为后果,我的网站无法使用端口 80。我的问题:有没有办法告诉 iptables 重定向端口 80 仅用于有关 ruby 服务器的连接(因此,第一个域?)我无法更改服务器的端口,所以你如何建议我为了用80换网站?很抱歉这些愚蠢的问题,但我完全陷入了这个问题。我忘了提到我不再与 ruby 开发人员联系了,所以这让事情对我来说更具戏剧性:)
提前致谢
如果您从同一个 IP 为两个域提供服务,则无法通过端口转发来做到这一点,因为 iptables 无法知道客户端尝试连接到哪个域。您的服务器不参与DNS查询,而客户端不发送一个HTTPHost:报头,直到之后的TCP连接已经建立。
但是,您可以做的是使用 Apache 的mod_proxy设置一个反向代理,将 HTTP 请求中继到 Ruby 服务器。 这个食谱展示了如何:
<VirtualHost *:*>
ProxyPreserveHost On
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
ServerName your.ruby.site
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
通过这种配置,访问 Ruby 站点的人实际上不会连接到 Ruby 服务器,而是连接到 Apache。但是 Apache 会通过从 Ruby 服务器请求页面来提供这些页面,因此结果基本相同。
| 归档时间: |
|
| 查看次数: |
2959 次 |
| 最近记录: |