firstvds.ru



Когда-то, кто помнит, он был популярен. Это были времена 2008 года. Но, в 2010 например, он был полным говном, с дорогими тарифами и старыми ресурсами.
Я уже перестал его считать, «за нормальный хостинг». Но он меня удивил, и обновился полностью и мощно.

Услуги у них, аж вон какие.

т.е. они сделали полноценный сервис. от говно хостинга, до виртуальных vds/vps, и выделенных серверов.
и даже ресселинг, и покупку доменов, да ssl сертификатов, с администрированием.
Весь спект нужных услуг ;)

Что хочу отметить. Удобство разных заказов, разных вещей, «все в одном» конечно же.
И наконец, их VDS, где цены стали ниже, а качество лучше.
Плюс, имеется XEN виртуализация.

По большей части, все железо в США, к слову сказать. Есть и Российское, но мало.

Все таки ISP bill творит чудеса удобства. С новым саппортом пока конфликтов не было, через пол года еще апну данную тему. Пока что, отзыв рекомендательный и положительный.

У них, стоит покупать VDS на XEN. И ssl сертификаты, отличные цены ;)

sky-hosting.ru - интересный тариф на vds за 1600/мес



CPU: 2 х 2400Mhz (2 ядра процессора Core I7)
RAM: 4096 mb DDR3
HDD: 100 gb (можно увеличить по запросу в службу тех. поддержки. дополнительно 100гб +200 рублей в месяц)
IP: 4 ip адреса + возможность бесплатно увеличить до 8


4 гектара памяти и 100hdd, да сразу с 4 ip, всего за 1600р/мес ;)
Для сравнения, на ihc.ru, макс токо 2гб, и эти 2гб 2к/мес, hdd так же 100. А если сделать с 4 ip, то будет 2300(+3ip по 100р)
Так что, очень даже, неплохо ;)

Ну и написать, что вообще за Скай-хостинг.
Такой же, как и многие — ресселер hetzner.de
*хотя, к слову сказать, есть еще и Канада, как локация. и даже Россия.

Кроме этого тарифа, меня особо больше ничего не впечатляет. Но там, есть довольно неплохие тарифы ресселинга. (VDS vs ресселинг)

Детальнее:
  • ISP manager панель, дается только при оплате от 3х месяцев.
  • Дополнительные ip = легко, по цене 35р/шт
  • Резервное копирование = нету. Вам нада самим заботиться о этом, купить хостинг для бекапов, или же резервный vds.
  • Отношение к абузам = 50/50 в Германии, а в Канаде по большей части халява.
  • Тех поддержка — отвечает долго, но проблемы решает, и не просит за это денег.
  • Способы оплаты — лучше всего платить через QIWI или Webmoney. Остальные электронные валюты, с довольно дорогой коммисей будут. А безнал не принимают, ЮЛ идут мимо.


upd 25.12.2011: Больше не рекомендую эту контору.

aminahost.ru в 2х словах



Небольшой обзорчик.
ISP billing стоит. Там можно закупить доменные имена, шаред хостинг, ресселинг хостинга. И виртуальные сервера.
И теперь еще ISP manager лицензии.
Все стандартно, НО вот, разделу VDS я хочу уделить особое внимание.

Локации: Германия, Москва.
Еще — трафик неограниченный. Вроде бы так и есть ;)
По статистике на VDS много трафика не накачаешь, всегда начинается что-то. НО тут пока проблем не было еще.

VDS-OVZ-2
1000 Мгц/512 Мб/50ГБ hdd = 250р
Очень дешево, это раз.
Неплохой тариф, да?
Есть и круче.

  • Резервное копирование нету = дополнительная услуга
  • ISP панелей, даже на самых дорогих тарифах = нету. Значит, лицензию придется покупать самому. А вместе с лицензией, как раз и выйдет стандартная цена, или возможно даже дороже. Так что, тут на длительные сроки токо.
  • Дополнительные IP = легко и дешево.
  • Отношение к абузам = негативное.
  • Саппорт, вполне нормальный, но это может быть токо по первости.
  • Способы оплаты — все электронные деньги. и везде через платежные системы, с комиссией. безнал принимают, через приват-банк, ЮЛ 50/50, отчетные документы не высылают даже за деньги.

Еще, я бы отметил, данного хостера, как редкий случай, где дают столько hdd места. Если вы хотите делать пикче хостинги, или файло какое-то. То лучше всего, для таких дел, купить именно тут. Пусть даже, как отдельный ресурс, под файлы всякие. За такую цену, самое лучшее ;)


С мая 2012, как контору продали кому-то, она скатилась в УГ.
Можете почитать список хостеров w.abcd.bz/vds-hosting/spisok-hosterov-aprel-2012.html

Редирект в зависимости от ip

.htaccess
RewriteEngine On 
RewriteCond %{HTTP_ACCEPT_LANGUAGE} de.* [NC,OR] 
RewriteCond %{HTTP_ACCEPT_LANGUAGE} de-ch.* [NC,OR] 
RewriteCond %{HTTP_ACCEPT_LANGUAGE} at.* [NC,OR] 
RewriteCond %{HTTP_ACCEPT_LANGUAGE} en-gb.* [NC,OR] 
RewriteCond %{HTTP_ACCEPT_LANGUAGE} de-at.* [NC,OR] 
RewriteCond %{HTTP_ACCEPT_LANGUAGE} de-li.* [NC,OR] 
RewriteCond %{HTTP_ACCEPT_LANGUAGE} fr-ch.* [NC,OR] 
RewriteCond %{HTTP_ACCEPT_LANGUAGE} ch.* [NC,OR] 
RewriteCond %{HTTP_ACCEPT_LANGUAGE} de-de.* [NC,OR] 
RewriteRule .* http://google.com [R,L]


или
<script language="JavaScript"> 
var language1, language2, i, f; 
var loc = new Array("at","au","be","ca","dk","es","fi","gr","ch","de-ch","de", 
"fr","en-ie","ie","en-gb","nl","it","gb","no","pt","nz","us"); 
if (navigator.appName.indexOf("Microsoft") != -1) { 
language1=navigator.systemLanguage.toLowerCase(); 
language2=navigator.userLanguage.toLowerCase(); 
} else { language1=language2=navigator.language.toLowerCase(); } 
for (f=false,i=0;i<loc.length;i++) { if ((language1 == loc[i]) 
|| (language2 == loc[i])) { f = true; break; } } 
if (f) window.open("http://page_with_toolbar_code"); 
</script>


Настроить под себя.

Хостинги под бэкапы

Из моих наблюдений, лучший по цене, и надежности/приватности это fornex.com/backup.


При покупке такого(если у вас нету резервых серверов например), нада обращать внимание на скорость канала. Ибо иногда чтобы скачать бекап, нужно 4 часа :) Так что, скорость канала — самое важное, наверно.
*а еще, иногда можно просто заказать услугу дополнительную, у того же хостера, где покупаете VDS или сервер. хотя не у всех есть, но если такая услуга присутствует, то проще всего делать именно так.

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

Inferno Solutions



Промокоды:
LINUX50 — скидка 50% на весь срок аренды Linux VPS в Германии и США (до конца 2011 года)
EST50 — скидка 50% на весь срок аренды в Эстонии (до конца 2011 года)
Чтобы получить +1 месяц аренды в подарок, укажите в примечании к заказу код 1+FREE (до конца ноября)
50PROMO — 50% на первый месяц аренды любого VPS сервера
Windows VPS в Германии — скидка 25% Код — WIN25

Плюсы, которые есть у них
  • VPS работают на платформе XEN, что полностью исключает возможность оверселлинга.
  • Главный плюс, этой конторы, их серверы и VPS практически под любые цели, кроме откровенного нелегала (вирусы, взломы и т.п)
  • Торрент-трэкеры, варезники и другие нарушители авторского права — велам
  • Первоначальная настройка вашего сервера включается в тарифы.
  • Круглосуточная поддержка и администрирование включены в стоимость.
  • Ресселеры, как fastvps.ru, наивысшего уровня — напрямую с ДЦ
От себя, скажу, что рекомендую именно как самый лучший ресурс, где можно закупить сервера, куда будут абузы всякие присылаться. Тут самая наивысшая живучесть такого рода.

Минусы очевидно, официальная работа с ЮЛ и все такое. Если вам это важно, то пиздуйте на мастерхосты, заточенные под нубов. И общение с тех поддержкой тут тоже, на уровне интернета, если вы мудак и будете ебать мозги(как нуб), то вам вообще могут не продать хостинг, ибо тут с гемороем не связываются.
Тем, кто знает, зачем им сервер, или VDS — именно для таких вот клиентов, я советую юзать Inferno
Или можете, использовать эту контору, как одну из локаций, если захотите ресселить хостинг(без участия ДЦ/ЮЛ/т.д.)

Бесплатные DNS хостинги

Решил, тут написать обзоров.
Можно получить бесплатный dns хостинг, у хостеров.

Потом, в будущем, буду дописывать в комменты, еще подобные места.
Выбор за вами. Какой менеджер, для управления вам нравится, тем и пользуйтесь.
Раньше я был всецело за yandex, но даже он упал, как вы знаете. Так что, идеальности не существует.

2ns.info - листинг доменов

2ns.info


Плюшки

Самое полезное, это блокнот доменов. С ним вы никогда не забудете продлить или перехватить освободившейся домен. ;)

domains.alice2k.ru

domains.alice2k.ru

По партнерке от domaincontext.com, так что не проебутся. (если партнер отчаливает даже, через 5 лет, то через их оф сайт можно всегда получить доступ)
Оформлено, через Михея, с бывшего zloy.org еще(ну с 2009 там .bz, когда Терминатор продал Злой).
регистрация доменов

Собсно панели как обычно. Управление зоной присутствует. Разве что для нубов проще.




Класс для загрузки файлов на сервер

Пример как использовать:
if (!empty($_FILES)) {
$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = '/public/galery/';
$upload = new Upload(str_replace('//', '/', $targetPath));

if ($upload->uploads($_FILES['Filedata'])) {
$fileInfo = $upload->getFilesInfo();
$fileInfo["nameTranslit"];// новое имя файла, можно записать в БД
}
}

Ну и собственно сам класс
class Upload {

    private $dir = "/";
    private $name;
    private $FILES;
    private $allowedType = array("jpg", "gif", "bmp", "jpeg", "png", "pps","doc","docx","xls","pdf","txt","rar","zip");
    private $errors;
    private $errorsMessage = array(1 => "Размер загружаемого файла превышает допустимый размер.",
        2 => "Размер загружаемого файла превышает допустимый размер.",
        3 => "Файл был загружен лишь частично.",
        4 => "Файл не был загружен.",
        6 => "Файл не был загружен.",
        7 => "Файл не был загружен.",
        8 => "Файл не был загружен.");

    function __construct($dir="/") {
        $this->dir = $dir;
    }

    /**
     * устанавливаем дирректорию загрузки файла
     */
    function setDir() {
        $this->dir = $dir;
    }

    /**
     * Устанавлиаем доступные расширения
     * @param <type> $type
     */
    function setAllowedType($type) {
        if (is_array($type)) {
            $this->allowedType = $type;
        } else {
            $this->allowedType = explode(",", $type);
        }
    }

    /**
     * загрузка файла
     * @param $tmpName
     * @param $name
     * @param $replacement
     */
    private function upload($tmpName, $name) {
        $name = $this->substitute(self::translit($name));

        if ($this->typeChecking($name))
            if (move_uploaded_file($tmpName, $this->dir . $name)) {
                return $name;
            } else {
                return false;
            }
        return false;
    }

    function uploads($FILES) {
        $this->FILES = $FILES;

        if (!is_array($this->FILES['name'])) {
            return $this->uploadsOneFile();
        } else {
            return $this->uploadsManyFiles();
        }
    }

    /**
     * загрузка одного файла
     */
    function uploadsOneFile() {

        if ($this->FILES['error'] != 0) {
            $this->errors[] = $this->errorsMessage[$this->FILES['error']];
            return false;
        }

        $result = $this->upload($this->FILES['tmp_name'], $this->FILES['name']);
        if ($result != false) {
            $this->FILES['nameTranslit'] = $result;
            return true;
        }
        return false;
    }

    /**
     * загрузка нескольких файлов
     */
    function uploadsManyFiles() {
        $coutFiles = count($this->FILES['name']);
        for ($i = 0; $i < $coutFiles; $i++) {
            if ($this->FILES['error'][$i] == 0) {
                $result = $this->upload($this->FILES['tmp_name'][$i], $this->FILES['name'][$i]);

                if ($result != false) {
                    $this->FILES['nameTranslit'][$i] = $result;
                } else {
                    $this->errors[] = $this->FILES['name'];
                }
            } else {
                $this->errors[] = $this->errorsMessage[$this->FILES['error']];
            }
        }

        return true;
    }

    /**
     * проверяем, разрешен ли данный файл к загрузке
     */
    function typeChecking($fileName) {
        preg_match("#([\w()-_]+)\.([\w]{1,4})$#i", $fileName, $arrayNameFiles);
        $nameEnd = strtolower($arrayNameFiles[2]);
        if (in_array($nameEnd, $this->allowedType)) {
            return true;
        } else {
            $this->errors[] = "Файлы с расширением (<b>{$fileName}</b>) не разрешенны к загрузке.";
        }
        return false;
    }

    /**
     * ищет в каталоге файлы с таким же названием дописывает номер(равный количеству файлов с таким названием) в конец
     * @param $name
     */
    function substitute($name) {

        $files = scandir($this->dir);
        unset($files[0]);
        unset($files[1]);

        $i = 0;
        $newName = $name;

        preg_match("#([\w()-_]+)\.([\w]{1,4})#i", $name, $arrayNameFiles);
        $nameStart = $arrayNameFiles[1];
        $nameEnd = $arrayNameFiles[2];

        while (in_array($newName, $files)) {
            $newName = "{$nameStart}({$i}).{$nameEnd}";
            $i++;
        }
        return $newName;
    }

    /**
     * возвращаем информацию о файле
     */
    function getFilesInfo() {
        return $this->FILES;
    }

    /**
     * возвращаем ошибки
     */
    public function errors() {
        return $this->errors;
    }

    /**
     * переводим текст в транслит
     * @param $text
     */
    public static function translit($text) {
        $rus = array("а", "б", "в",
            "г", "ґ", "д", "е", "ё", "ж",
            "з", "и", "й", "к", "л", "м",
            "н", "о", "п", "р", "с", "т",
            "у", "ф", "х", "ц", "ч", "ш",
            "щ", "ы", "э", "ю", "я", "ь",
            "ъ", "і", "ї", "є", "А", "Б",
            "В", "Г", "ґ", "Д", "Е", "Ё",
            "Ж", "З", "И", "Й", "К", "Л",
            "М", "Н", "О", "П", "Р", "С",
            "Т", "У", "Ф", "Х", "Ц", "Ч",
            "Ш", "Щ", "Ы", "Э", "Ю", "Я",
            "Ь", "Ъ", "І", "Ї", "Є", " ");
        $lat = array("a", "b", "v",
            "g", "g", "d", "e", "e", "zh", "z", "i",
            "j", "k", "l", "m", "n", "o", "p", "r",
            "s", "t", "u", "f", "h", "c", "ch", "sh",
            "sh'", "y", "e", "yu", "ya", "_", "_", "i",
            "i", "e", "A", "B", "V", "G", "G", "D",
            "E", "E", "ZH", "Z", "I", "J", "K", "L",
            "M", "N", "O", "P", "R", "S", "T", "U",
            "F", "H", "C", "CH", "SH", "SH'", "Y", "E",
            "YU", "YA", "_", "_", "I", "I", "E", "_");
        $text = str_replace($rus, $lat, $text);
        return(preg_replace("#[^a-z0-9._-]#i", "", $text));
    }

}