VPS-ный зоопарк объявляется закрытым

Надумал я тут порядок с VPS-ками навести. Вместо трех (2xLeaseWeb + 1xDigitalOcean) теперь сделал один (на Hetzner).

Триггером стало мое офигевание от политики Лизвеб. (Если за два месяца до окончания трехмесячного контракта не успел подать заявку на отмену продолжения, то, получается, обязан почти 5 месяцев следующих обязательно пользоваться…. Но это отдельная история.)

А так же отличная находка - VPS-ка на Hetzner на 4 гига оперативки всего за 5 евро! (Наконец, мои NLP-шные модули смогут легче дышать). Ну и перевод всего на CloudFlare для защиты и снижения нагрузки за счет кэширования. Плюс SSL из коробки.

Довольно сильно еще напрягало то, что там и разные версии Debian были, и разные версии python (с кучами вариантов и virtual environment-ов). Где-то часть сайтов была на nginx->gunicorn, где-то nginx->apache. И так далее.

Заодно удалил разный скриптовый мусор из некоторых сайтов, делая их полностью статическими. Если конкретней, то я про /statdir/stat.php?rurl=http://… , что осталось от Advantage Web Log Analyzer. Но тут вдруг вспомнил (точнее, гугл-аналитика алертом подсказала), что у меня через подобную схему url-ов происходят переходы напрямую из продуктов на сайт. Потому теперь надо как-то nginx научить их обрабатывать.

И вот тут я завис на несколько часов, пытаясь понять как правильно написать rewrite. Вот не хотело правило срабатывать и все. И лишь только протестировав массу регулярок (все упрощая их) понял, что все ломается на “?”. Как оказалось, все дело в том, что параметры там передаются отдельно в $query_string.

В общем, в конце концов, получилась у меня вот такая вставка в конфиги:

rewrite /statdir/stat\.php /$query_string permanent;
set $args "";
rewrite rurl=(.*) $1 permanent;

Вот так вот легким движением руки брюки превращаются… превращаются брюки… брюки превращаются… В элегантные шорты! (с)