Привет. Есть сайт, хостящийся в стране A. Нужно сделать так, чтобы по отдельному домену этот сайт был доступен так, как будто он хостится в стране B. Как я себе представляю самое простое решение: в стране B арендуем хостинг, в DNS для отдельного домена прописываем IP сервера страны B, а на самом сервере ставим тупую форвардилку трафика. Существует ли какое-то простое решение такой прокси, которое можно поставить на самый простой виртуальных хостинг (самый дешевый)? Если бы это был дедик, то я бы написал проксю на C++/asio, но дедик брать не хочется. На сайт могут заливаться большие файлы POST-запросами, поэтому простой php-скрипт вида echo file_get_contents(...); не подойдет. Нужна потоковая пересылка, а не "все прочитали - все отправили". Что посоветуете?
Посоветую бесплатно взять linux-сервер в облаке Amazon-а. Пользуюсь уже месяца два, пока что всё ок. Если не вылезать за ограничения фриварного аккаунта - то срок действия обещают в 12 месяцев. Алсо, у них и обычные тарифы копеечные, и с бесплатного аккаунта на них можно переходить в любое время, при этом твои сервера всегда будут при тебе. Да, при регистрации нужно будет ввести номер кредитки, с которой снимут один доллар для проверки валидности. Я использовал виртуальную карту Visa, на которую положил 50 рублей, лол.
Cr4sh Ну номер кредитки я и своей могу указать, т.к. это обычный белый проект, ничего криминального Дело в том, что моя страна B - это Китай. У Амазона есть серверы в Китае?
Да, ещё можно попробовать использовать бесплатный хостинг приложений от Google. Google App Engine, грубо говоря, представляет собой несколько урезанный в плане дефолтных библиотек python, но сокеты или http клиент там, скорее всего, должны быть. Ещё там присутствует некое подобие крона, которым можно запускать свои задачи в бекграунде.
_DEN_ В php есть сокеты, есть select. А что ещё надо для потоковой пересылки? Может быть обработка сигналов, или что-нибудь в этом роде. Но это в случае C могут понадобится такие сложности, в php, я думаю, свои методы обработки асинхронных событий. Какие-нибудь там исключения, коды возврата или ещё что-нибудь в этом роде. Во-всяком случае, это несложно выясняется в документации. На C "простейший" прокси на select'е, можно уложить строк в пятьсот. На php, можно надеяться, он уложится в 300. 300 строк -- это достаточно просто? Подумал сам над вопросом -- думаю достаточно. Если речь о трёхстах строках кода, то скорее всего они где-нибудь уже лежат в интернете, причём в паблике. И главное: я думаю гугл знает где. (только тс-с-с... не говори никому)
Так кто ж тебе разрешит на обычном шаред-хостинге биндить порт для прокси и вешать какие-то задачи в бекграунде?
Да, видимо простой хостинг тут не катит. Кто-нибудь может посоветовать дешевый китайский windows-хостинг с выделенным IP?
Cr4sh Ах даже так... Но тогда всё ещё проще. Тогда всё мультиплексирование ввода/вывода надо оставлять апачу, и тупо обрабатывать коннект перенаправляя его куда-то там. Единственное что -- нужен работающий .htaccess.
r90 Все хорошо кроме одного. Когда юзер будет заливать файлы POST-ами, фалы будут складироваться на проксю. А я хочу их прозрачно пересылать без промежуточного складирования.
_DEN_ А, точно. Ступил. Давно не связывался с этой моделью разработки веб-приложений, уже даже и забыл всю её убогость.