![如何将 URL 重写到 DD-WRT 路由器后面的 Mac OS X 服务器上的特定端口?](https://linux22.com/image/1322487/%E5%A6%82%E4%BD%95%E5%B0%86%20URL%20%E9%87%8D%E5%86%99%E5%88%B0%20DD-WRT%20%E8%B7%AF%E7%94%B1%E5%99%A8%E5%90%8E%E9%9D%A2%E7%9A%84%20Mac%20OS%20X%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84%E7%89%B9%E5%AE%9A%E7%AB%AF%E5%8F%A3%EF%BC%9F.png)
我刚刚使用 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 访问我的服务器(我确实必须更改路由器上的设置才能允许这样做)。