Создание рабочей среды в сети с заблокированным портом 80 - PullRequest
1 голос
/ 05 октября 2008

В настоящее время я использую свой локальный веб-сервер, чтобы клиенты могли просматривать некоторые приложения, а также разрешать загрузку "ночных сборок" из моей библиотеки с открытым исходным кодом.

Проблема в том, что я сменил провайдера, и теперь мой порт 80 заблокирован.

Хотя я знаю, что могу легко изменить порт на сервере Apache, я бы хотел этого избежать, если нет альтернативы.

Знаете ли вы какую-либо стороннюю службу (бесплатную или платную), которая бы перенаправляла порт на мой веб-сайт, делая его прозрачным для тех, кто к нему обращается?

Еще одна идея, о которой я слышал, - это использовать переписывание модов с моего текущего веб-хоста для перезаписи на мой домен, но я также предпочел бы не идти по этому пути. Кроме того, знаете ли вы примеры .htaccess, которые действительно работают? Я пробовал это:

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

Но, похоже, это не работает.

Ответы [ 7 ]

2 голосов
/ 05 октября 2008

"и обратно к клиенту по прозрачному пути" .... об этом позаботится NAT, так что это не должно быть проблемой.

Для обработки запроса на перевод из одной строки в другую, это проблема, поскольку вам нужно преобразовать запрос до того, как он попадет на сервер. Посмотрите на какую-то службу переадресации URL

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

Также вы можете настроить отдельный сайт на сервере провайдера и переадресовывать его запросы на определенный адрес / ссылку на вашем сервере.

Надеюсь, это поможет!

1 голос
/ 06 октября 2008

Ну, хотя я оценил ответы, я не был полностью удовлетворен окончательным результатом. Я хотел, чтобы изменения в моем провайдере были прозрачны для моих клиентов, и я думаю, что мне удалось заставить его работать.

Вот что я сделал:

Я нанял дешевый VPS-сервер - VPSLink - и выбрал его самый дешевый тариф: 64 МБ ОЗУ, 2 ГБ HD и 1 ГБ ежемесячного трафика. После пожизненной 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,, поэтому я могу делать все, что захочу.

На моем локальном сервере я проделал то же самое, чтобы распространить обработчик поддоменов. У меня есть, например, два серверных приложения Java, которые работают на портах 8088 и 8089 локально. Все, что мне нужно было сделать, - это еще один прокси-сервер, теперь внутри

Конфигурация локального сервера:

<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>

Надеюсь, это того стоит, если кто-то другой ищет такую ​​же альтернативу.

1 голос
/ 05 октября 2008

Я бы хотел, чтобы клиент тип http://myaddress.com/hello/there?a=1&b=2 и это переводится http://mylocalserver.com:8080/hello/there?a=1&b=2 и снова к клиенту на прозрачный способ.

Я считаю, что это Apache RewriteRule, который вы ищете, чтобы перенаправить любой URL:

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

С этого момента клиент будет просматривать mylocalserver.com:8080, и это то, что он увидит в адресной строке. Если вы имеете в виду «и снова», что они все еще думают, что просматривают myaddress.com, то вы говорите о переписывающем прокси-сервере.

Под этим я имею в виду, что вам придется переписывать все URL-адреса не только в заголовках HTTP, но и в содержимом HTML (т. Е. Выполнять поиск / замену регулярного выражения в HTML), а также декодировать, переписывать и повторно отправлять все GET, POST , PUT данные тоже. Однажды я написал такой прокси, и позвольте мне сказать вам, что это не тривиальное упражнение, хотя принцип может показаться простым.

Я бы сказал, просто будьте счастливы, если вы сможете заставить работать редирект и позволить им просмотреть mylocalserver.com:8080 с этого момента.

1 голос
/ 05 октября 2008

Если вы не можете заставить своего интернет-провайдера открыть для вас порт 80 и не можете переключить интернет-провайдеров, используйте директиву перенаправления htacccess:

Перенаправление 301 / http://yourserver.com:8000/

Пользователи могут заметить перенаправление, но, вероятно, им все равно.

1 голос
/ 05 октября 2008

При заблокированном порте 80 маршрутизация через Dynamic Service не поможет, если только клиент не укажет новый порт в домене.

У вашего локального роутера трафик "переадресации порта" с нового порта (скажем, 8080) на порт 80. Оставьте все то же самое на вашем конце.

Создайте учетную запись на DynDNS.org и настройте свой динамический сервис. Тогда пусть ваш клиент сделает http://mydomain.com:8080

Это должно сработать

Все еще изучите предложение Рольфа, поскольку они не настоящие провайдеры, .... серьезно.

Спасибо

0 голосов
/ 05 октября 2008

Спросите своего провайдера, почему это так, и если вы не получили ответа, снова переключите провайдера.

0 голосов
/ 05 октября 2008

Я думаю, что большинство сервисов DynamicDNS позволяют переадресацию портов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...