好吧,尽管我很欣赏这些答案,但我对最终结果并不十分满意。我希望我的 ISP 更改对我的客户来说是透明的,我想我设法让它发挥作用。
这是我所做的:
我租了一个便宜的 VPS 服务器 - VPSLink - 并选择了它最便宜的计划:64Mb RAM、2Gb HD 和 1Gb 每月流量。在终身 10% 的折扣之后,每月只需 7.16 美元,对于这项工作来说相当实惠,并且您可以获得沙盒 VPS 服务器作为奖励。到目前为止,托管似乎很好 - 没有问题。如果您想试一试,您可以从其网站(如上所示)或通过推荐代码注册。网上有很多,你只需要搜索一下。此外,如果您愿意,我可以轻松地为您创建一个,只需在此答案上发表评论:您将获得 10% 的折扣,我可以免费使用一个月。我不会直接在这里发布,因为这似乎是这篇文章背后的意图——但事实并非如此。
此帐户不受管理,但它提供 root 访问权限。然后我将 apache 配置为我的 80 端口请求的代理,透明地将它们转发到我在 8081 端口上的本地网站。
下面是我的 Apache 的 httpd.conf 配置文件的一些片段。
VPS服务器配置:
<VirtualHost *:80>
ServerName mydomain.com
ServerAlias www.mydomain.com *.mydomain.com
RewriteEngine On
RewriteCond %{HTTP_HOST} (.*)\.mydomain\.com [NC]
RewriteRule (.*) http://mylocalserverdns.mydomain.com:8081/%1$1 [P]
</VirtualHost>
这使得像http://subdomain1.mydomain.com/script?a=b这样的请求在服务器端被透明地转发到http://mylocalserverdns.mydomain.com:8081/subdomain1/script?a=b,所以我可以从那里做任何我想做的事。
在我的本地服务器上,我做了同样的事情来分发我的子域处理程序。例如,我有两个在本地端口 8088 和 8089 上运行的 Java 服务器应用程序。我所要做的就是另一个代理转发,现在在内部
本地服务器配置:
<VirtualHost *:8081>
ServerName mylocalserverdns.mydomain.com
ProxyPass /app1 http://127.0.0.1:8088
ProxyPassReverse /app1 http://127.0.0.1:8088
ProxyPassReverse /app1 http://mylocalserverdns.mydomain.com:8088/app1
ProxyPass /app2 http://127.0.0.1:8089
ProxyPassReverse /app2 http://127.0.0.1:8089
ProxyPassReverse /app2 http://mylocalserverdns.mydomain.com:8089/app2
</VirtualHost>
如果其他人正在寻找相同的选择,希望这是值得的。