如何将 URL 重写到 DD-WRT 路由器后面的 Mac OS X 服务器上的特定端口?

如何将 URL 重写到 DD-WRT 路由器后面的 Mac OS X 服务器上的特定端口?

我刚刚使用 Mac OS X Lion 的内置 Apache 服务器设置了一个家庭 Web 服务器。我设置了在端口 4040 上运行的 Subsonic 音乐服务器和在端口 9091 上运行的 torrent 远程控制,以及在端口 80 上运行的内置 Web 服务器。幸运的是,端口 80 未被阻止,因此我能够使用在 DDWRT 路由器上运行的 DynDNS 访问所有这些服务器。我的域“example1.dyndns.org”已与 DD-WRT 自定义固件连接,并且能够通过“输入 example1.dyndns.org:4040”或 9091 来访问这些单独的服务。

我希望能够通过不同的 /url 访问所有这些服务。因此 Subsonic 将是 example1.dyndns.org/subsonic。

根据我的研究,我怀疑可以通过使用 DynDNS 的专业版、在我的 DD-WRT 路由器上设置 Apache 中的虚拟主机或在我的 Lion Server 上设置 Apache 来实现这一点,但我真的需要一些指导。我不是网页设计师,但只要我确信自己走在正确的方向上,我就可以学习。谢谢

答案1

找到了!秘诀就是编辑 Mac 的内置 Apache 虚拟主机!我让路由器继续将端口 80 流量重定向到服务器。感谢 Transmission 论坛上的 AngryInca 提供的有用的说明

因此,在管理员模式下启动 Textedit 后,我​​最终将其添加到我的 httpd.conf 中,以便能够通过访问 www.examplewebsite.com/transmission 来访问 Transmission (9091) 并通过访问 ./music 来访问 subsonic (4141):

<VirtualHost *:80>
RewriteEngine On
### BELOW FOR TRANSMISSION WEB INTERFACE ###

# Redirect requests to /transmission/ to /transmission/web/
RewriteRule /transmission[/]?$ /transmission/web/ [R=permanent]

# Forward all requests for /transmission to transmission-daemon
ProxyPass /transmission http://127.0.0.1:9091/transmission
ProxyPassReverse /transmission http://127.0.0.1:9091/transmission
redirect 301 /transmission/transmission/web/ /transmission/web/
redirect 301 /transmission/ /transmission/web/
redirect 301 /transmission /transmission/
### END TRANSMISSION WEB INTERFACE ###

### BELOW FOR Adam's Subsonic WEB INTERFACE ###
# Forward all requests for /music to subsonic-daemon
ProxyPass /music http://127.0.0.1:4141/music
ProxyPassReverse /music http://127.0.0.1:4141/music

### END SUBSONIC INTERFACE ###
</VirtualHost>

我添加了重定向,因为有时传输会出现问题并尝试转到错误的 url,而 ProxyPass 是为了让我能够在本地网络上通过网站 url 访问我的服务器(我确实必须更改路由器上的设置才能允许这样做)。

相关内容