Если вы читали предыдущий пост, то знаете, что я арендовал себе VPS, чтобы поставить на него self-hosted bitwarden. Так вот, продолжение моих приключений с этим сервером.
Докупил вчера еще Block Storage на полтерабайта и решил на этом же сервере поднять Nextcloud, потому что Raspberry Pi не вывозит, а еще бесит, что чтобы сходить за личными файлами в облако, нужно подключаться к VPN. (Не так давно я переехал с Google Drive на Nextcloud, потому что меня бесил UI гугла и беспокоила сохранность моих личных архивов с мемами и нюдесами. Как показали последние события, не зря).
В общем, благодаря своей тупости, мне пришлось переносить Bitwarden на VPS в другом регионе, потому что Block Storage доступен только в Нидерландах, Австралии и Америке, а мой VPS был в Швеции, поэтому к нему нельзя было подключить свежекупленный диск. Благо перенос представлял из себя последовательное выполнение команд zip - scp - scp - unzip - docker run.
В общем, арендовал VPS в Нидерландах на Ubuntu 22.04, начал все разворачивать. Поднял Bitwarden в докере с 80 портом наружу и понял, что либо придется Nextcloud поднимать на другом порту, либо нужно поставить спереди Nginx и просто проксировать через него трафик в нужный докер-контейнер, в зависимости от домена.
Устанавливаю Nginx, запускаю Bitwarden и Nextcloud и понимаю, что абсолютно ничего не работает, т.е. даже тестовый конфиг Nginx не работает, а у меня такое вообще первый раз (за последние пару месяцев я несколько раз арендовал VPS на Ubuntu 20.04, ставил туда Nginx и бед не знал).
Обычно же как это выглядит apt install nginx и поехали, а тут в ответ тишина. Ну т.е. не совсем тишина, Cloudflare говорит "сервер даун" и все.
Причем, если запускать докер-образ с 80 портом наружу, все хорошо, все работает, можно даже пароли свои смотреть в Bitwarden, а вот Nginx не подает признаков жизни. (На самом деле подает, я пытался curl-ом дернуть localhost с сервера, но не придал особо значения тому, что все работает... Плохой из меня админ)
Спустя полтора часа превозмогал трудности и страдал с разными конфигами Nginx, смотрел логи, проверял порты, переустанавливал все с нуля, ставил Apache... Тишина. С тачки все открывается, а снаружи нет.
Тут-то до меня и начало доходить. Спустя миллион лет страданий и через чью-то мамку, я выяснил, что в Ubuntu 22.04 по умолчанию включен ufw (файрвол такой), который блокирует трафик на 80 и 443 порты ЕСЛИ ИХ СЛУШАЕТ ИМЕННО NGINX. Если запустить Goшный бинарь или, например, докер-образ на 80 порту, все будет хорошо, а вот Nginx нельзя. Не положено.
Самое смешное, в документации, по которой я обычно все ставлю (потому что я забываю, как правильно location в nginx описывать для proxy_pass), была секция про файрвол, которую я успешно игнорирую уже пару лет, т.к. раньше ни разу не сталкивался с включенным ufw.
Такие вот дела.