情况是这样的:我通过 GoDaddy(Jbc.ca)购买了一个域名,由于我有一个动态 IP 地址(但是它不会经常更改 - 所以理论上我可以将它直接转发到我的 IP 地址),因此 GoDaddy 目前将其转发到我的无 IP 域名。
现在情况变得稍微复杂了一点。我在端口 80 上运行一个 Web 服务器 (Apache),当您访问 (jbc.ca) 时会显示该服务器。我还在同一个系统上运行了其他几个服务:Plex- 端口 32400;Tautulli 在端口 7777;Ombi 在端口 5000;Lidarr 在端口 8686,Remotely Anywhere PC Access 在端口 7000 和一个单独的 Web 服务器 (Microsoft IIS 在端口 9024)。
目前,要访问除端口 80 之外的任何服务,我必须执行以下操作:“http://Jbc.ca:端口#“;例如,要访问 Ombi,我必须输入http://jbc.ca:5000。
我希望我的域名的每个端口都有子域名 - 例如 ombi.jbc.ca 理论上会在服务器上加载端口 5000,但会显示 ombi.plex.ca,而不是重定向和公开端口号。Ra.jbc.ca 将加载端口 7000,依此类推...
我已读到,这可以通过 apache 或 nginx 的反向代理来完成(因为我在主服务器上运行 mamp pro)以及 IIS,但是我不知道如何完成此操作,需要在服务器上更改/添加什么,哪个服务器最适合完成此操作以及我必须在我的 GoDaddy 域上修改什么。
希望有人能帮助我,因为我现在完全不知所措。
提前致谢。
答案1
这本质上是一个由两部分组成的过程。您需要在 DNS 中创建子域本身(例如使用 GoDaddy),然后创建执行实际代理的 Apache 虚拟主机条目。
DNS
假设您希望这些域名公开可用(即在您的本地网络之外),您需要通过 GoDaddy 的界面创建所有相关子域名。因此,您需要创建:
例如 GoDaddy 子域名
- plex.jbc.ca
- tautulli.jbc.ca
- ombi.jbc.ca
- lidarr.jbc.ca
- ra.jbc.ca
- iis.jbc.ca
当然,这些只是示例。实际的子域可以遵循您喜欢的任何命名方案。但是,ombi.plex.ca(可能是印刷错误?)在这种情况下是不可能的,除非你拥有plex.ca领域 (ombi.plex.jbc.ca应该没问题。
唯一可能的缺点是,你可能需要为每个子域名使用包含你实际 IP 的 A 记录(设置方式与主域名类似)jab.ca域名可能无法正常工作)。
Apache 虚拟主机
实际的反向代理管理由 Apache 在虚拟主机对于每个子域。
举例来说,Plex 的最小虚拟主机可能如下所示:
例如 Apache 虚拟主机
<VirtualHost *:80>
ServerName plex.jbc.ca
# ServerAlias Unneeded.for.this.example
# DocumentRoot "C:/Unneeded/for/this/example"
# Redirect basic requests to our Plex service.
# This should work for logging in.
ProxyPass / http://10.0.0.1:32400/
ProxyPassReverse / http://10.0.0.1:32400/
# Plex redirects us after logging in, so we need an
# additional set of entries to handle the main Plex
# interface.
ProxyPass /web http://10.0.0.1:32400/web
ProxyPassReverse /web http://10.0.0.1:32400/web
</VirtualHost>
在上面的例子中,10.0.0.1
应该替换为托管服务的服务器的本地 IP。
值得一提的是mod_proxy需要在 和 中启用(取消注释)才能httpd.conf
正常ProxyPass
工作ProxyPassReverse
。mod_proxy
还有其他代理模块也依赖于 ,我建议至少启用mod_proxy_html
并:mod_proxy_http
例如 httpd.conf (部分)
<...>
LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_express_module modules/mod_proxy_express.so
#LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_hcheck_module modules/mod_proxy_hcheck.so
LoadModule proxy_html_module modules/mod_proxy_html.so
LoadModule proxy_http_module modules/mod_proxy_http.so
<...>