我目前使用本地网络服务器允许客户预览某些应用程序,并允许下载“夜间构建”。我的开源库。

问题是我改变了我的ISP,现在我的端口80被阻止了。

Altough我知道我可以轻松更改Apache服务器上的端口,除非别无选择,否则我想避免使用它。

您是否知道任何第三方服务(免费或付费)可以将端口转发到我的网站,使其对访问它的人透明?

我听说的另一个想法是使用我当前的webhost中的mod重写来重写我的域名,但我也不愿意走这条道路。除此之外,你知道任何真正有效的.htaccess例子吗?我试过这个:

RewriteEngine on
RewriteRule ^/(.*) http://www.example.com:8080/$1

但它似乎没有起作用。

有帮助吗?

解决方案

  

我想要的是客户   类型    http://myaddress.com/hello/there?a=1&b=2   它被翻译成了    http://mylocalserver.com:8080/hello/there?a=1& b = 2   又回到了客户的一个   透明的方式。

我相信这是您正在寻找重定向任何网址的Apache RewriteRule:

RewriteRule ^(.*)$ http://mylocalserver.com:8080$1 [R]

从那时起,客户将浏览 mylocalserver.com:8080 ,这就是他们在地址栏中看到的内容。如果您的意思是“并再次返回”是他们仍然认为他们正在浏览 myaddress.com ,那么你所说的是重写代理服务器。

通过这个,我的意思是你不仅要在HTTP标题中重写所有URL,还要在HTML内容中重写所有URL(即在HTML上进行正则表达式搜索/替换),并解码,重写和重新发送所有GET,POST ,PUT数据。我曾经写过这样一个代理人,让我告诉你这不是一个微不足道的练习,虽然这个原则看起来很简单。

我想说,如果你能让重定向工作并让他们从那时起浏览 mylocalserver.com:8080 ,那就很高兴。

其他提示

“并以透明方式再次回到客户端”......将由NAT处理,以免出现问题。

要处理从一个字符串到另一个字符串的请求转换,这是一个问题,因为您需要在请求到达服务器之前对其进行转换。查看某种URL转发服务

http://www.dnsexit.com/Direct.sv?cmd=webforward

您还可以在提供商服务器上设置单独的站点,并将其转发到服务器上的特定地址/链接。

希望这有帮助!

如果端口80被阻止,则通过动态服务进行路由不会有帮助,除非客户端指定域中的新端口。

让您的本地路由器“端口转发”从新端口(例如8080)到端口80的流量。将所有内容保持不变。

使用DynDNS.org创建一个帐户并设置您的动态服务。然后让您的客户 http://mydomain.com:8080

应该做的伎俩

仍然关注罗尔夫的建议,因为他们不是真正的ISP,......认真。

由于

如果您无法让ISP为您打开端口80,并且您无法切换ISP,请使用htacccess重定向指令:

重定向301 / http://yourserver.com:8000/

用户可能会注意到重定向,但他们可能不在乎。

好吧,尽管我很欣赏答案,但我对最终结果并不满意。我希望我的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>

希望如果其他人正在寻找相同的选择,这是值得的。

我认为大多数DynamicDNS服务都允许端口转发。

询问您的ISP为什么会这样,如果您没有得到答案,请再次切换ISP。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top