Задать вопрос
  • Как решить проблему с Immich после подключения обратного прокси?

    Strelok13
    @Strelok13 Автор вопроса
    [UPD] закомментил строки логирования WebSocket. Файл websocket_error.log распух до нескольких Гб, съев всё свободное место на ВМ с Nginx (:

    Петровский, пришел вот к такому конфигу, с ним вроде как всё завелось.
    # Основной сервер для HTTPS
    server {
        listen 443 ssl;
        server_name immich.mydomain.ru;
    
        # Пути к SSL-сертификатам
        ssl_certificate /etc/letsencrypt/live/immich.mydomain.ru/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/immich.mydomain.ru/privkey.pem;
        include /etc/letsencrypt/options-ssl-nginx.conf;
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
    
        # Основное проксирование
        location / {
            proxy_pass http://192.168.0.190:2283;
    
            # Обязательные заголовки
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
    
            # Настройки для WebSocket
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
    
            # Логирование WebSocket
            # access_log /var/log/nginx/websocket.log;
            # error_log /var/log/nginx/websocket_error.log;
    
            # Таймауты
            proxy_read_timeout 86400;
            proxy_connect_timeout 10;
            proxy_send_timeout 86400;
    
            
        }
    
        # Дополнительные настройки безопасности
        client_max_body_size 10G;  # Для загрузки больших файлов
        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
    }
    
    # Редирект с HTTP на HTTPS
    server {
        listen 80;
        server_name immich.mydomain.ru;
        return 301 https://$host$request_uri;
    }


    Теперь меня пугает необходимость аналогичных манипуляций с обратным прокси для вебморд обоих серверов и ардуинки подтянутой в сеть (:
    Еще больше пугает только перспектива подъема почтовика.
    Точнее пугают даже не сами предстоящие процедуры, а то, что я крепко потерял объективное представление, чего и где наворотил за весь процесс костылинга.
    В общем, порисходящее на ВМ с Nginx я вижу теперь премерно так (:
    maxresdefault.jpg
    Написано
  • Как решить проблему с Immich после подключения обратного прокси?

    Strelok13
    @Strelok13 Автор вопроса
    [UPD] закомментил строки логирования WebSocket. Файл websocket_error.log распух до нескольких Гб, съев всё свободное место на ВМ с Nginx (:
    Пока пришел вот к такому конфигу.
    С ним пока всё работает.
    # Основной сервер для HTTPS
    server {
        listen 443 ssl;
        server_name immich.mydomain.ru;
    
        # Пути к SSL-сертификатам
        ssl_certificate /etc/letsencrypt/live/immich.mydomain.ru/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/immich.mydomain.ru/privkey.pem;
        include /etc/letsencrypt/options-ssl-nginx.conf;
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
    
        # Основное проксирование
        location / {
            proxy_pass http://192.168.0.190:2283;
    
            # Обязательные заголовки
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
    
            # Настройки для WebSocket
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
    
            # Логирование WebSocket
            # access_log /var/log/nginx/websocket.log;
            # error_log /var/log/nginx/websocket_error.log;
    
            # Таймауты
            proxy_read_timeout 86400;
            proxy_connect_timeout 10;
            proxy_send_timeout 86400;
    
          
        }
    
        # Дополнительные настройки безопасности
        client_max_body_size 10G;  # Для загрузки больших файлов
        add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
    }
    
    # Редирект с HTTP на HTTPS
    server {
        listen 80;
        server_name immich.mydomain.ru;
        return 301 https://$host$request_uri;
    }
    Написано
  • Как решить проблему с Immich после подключения обратного прокси?

    Strelok13
    @Strelok13 Автор вопроса
    Петровский, с HTTPS, вроде как всё пофиксил, работает без матов.
    У него еще и в конфигах SSL, почему-то подтягивались данные от Некстклауда
    listen 443 ssl; # managed by Certbot
        ssl_certificate /etc/letsencrypt/live/nextcloud.mydomain.ru/fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/nextcloud.mydomain.ru/privkey.pem; # managed by Certbot

    Это тоже поправил.
    Ну и с веб-сокетами вроде вопрос решился.
    По итогу конфиг вышел таким
    server {
        server_name immich.mydomain.ru;
    
        location / {
            proxy_pass http://192.168.0.190:2283; 
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Forwarded-Host $host;
            proxy_set_header X-Forwarded-Port $server_port;
    
            # WebSocket
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
            proxy_read_timeout 3600;
        }
    
        location ~ /\. {
            deny all;
        }
    
        client_max_body_size 10G;
    
        listen 443 ssl;
        ssl_certificate /etc/letsencrypt/live/immich.mydomain.ru/fullchain.pem; # Исправлено!
        ssl_certificate_key /etc/letsencrypt/live/immich.mydomain.ru/privkey.pem;
        include /etc/letsencrypt/options-ssl-nginx.conf;
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
    }
    
    server {
        if ($host = immich.mydomain.ru) {
            return 301 https://$host$request_uri;
        }
        listen 80;
        server_name immich.mydomain.ru;
        return 404;
    }


    Теперь "Server is not reachable" нет.
    Но ошибка с "Your app major version is not compatible with server", в приложении, осталась.
    Обновил версию сервера, обновил версию приложения.
    Сервер v1.125.7
    Приложение v1.125.7

    Добавил в конфиг
    # Отдельное проксирование для API (дополнительная страховка)
        location /api/ {
            proxy_pass http://192.168.0.190:2283/api/;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;


    Все равно лезет ошибка входа в приложение. Буду копать в сторону настроек Immich, т.к. нашел уже некоторые нестыковки в .env
    Написано
  • Как решить проблему с Immich после подключения обратного прокси?

    Strelok13
    @Strelok13 Автор вопроса
    Петровский, т.е. как один из вариантов - просто отказаться от https на субдомене Иммич?
    второй - рыть в сторону установки сертификатов для самого сервера Иммич и разрешения веб-сокетов в настройках Nginix?
    Написано
  • Как решить проблему с Immich после подключения обратного прокси?

    Strelok13
    @Strelok13 Автор вопроса
    После замены proxy_pass http:// на proxy_pass https://, получил только лишь 502ю при попытке зайти из браузера, во всём остальнм результат неизменен.
    Написано
  • Как настроить выход серверов с одного ip?

    Strelok13
    @Strelok13 Автор вопроса
    Петровский, спасибо за ответ здесь и в теме, с пояснениями.
    С Caddy я, судя по всему, протупил дважды.
    Первый раз когда полез настраивать сам, т.к. он установился у меня не с первой попытки.
    Второй раз, когда я решил разобраться с проблемой, обратившись к китайской, хвалёной, нейросетке R1. Скормил ей ситуацию, она дала пару советов которые казались вполне уместными, но после этого полезли дублирование путей к файлам кофигурации и прочее счастье.
    Н овыяснилось это уже при установке Hugo. Поэтому, да не лучшая моя черта, я психанул и решил идти по классическому пути Nginx+Wordpress, переустановил Убунту и поставил классическую связку, она завелась с первой попытки. Если бы не вот это вот всё с Иммич, я бы сказал, что всё вообще идеально стало.

    Судя по общению с R1 и сравнению уровня знаний, я предположил бы, что скорее всего это я ранее напортачил при установке и переустановке Caddy.
    Написано
  • Как решить проблему с Immich после подключения обратного прокси?

    Strelok13
    @Strelok13 Автор вопроса
    1. Я понимаю, что посыпались скорее пути "кто кого слушает и куда отвечает".
    2. Т.е. я так понимаю, что один и з простых вариантов — отказаться от сертификата на субдомене Immich ?
    3. Да, тут я немного протупил, Putty обрезал часть файла конфигурации
    server {
        server_name immich.mydomain.ru;
    
        # Проксирование на Immich VM
        location / {
            proxy_pass https://192.168.0.190:2283;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    
        location ~ /\. {
            deny all;
        }
    
        client_max_body_size 10G;  # Для медиафайлов
    
        listen 443 ssl; # managed by Certbot
        ssl_certificate /etc/letsencrypt/live/nextcloud.mydomain.ru/fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/nextcloud.mydomain.ru/privkey.pem; # managed by Certbot
        include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
    
    }
    server {
        if ($host = immich.mydomain.ru) {
            return 301 https://$host$request_uri;
        } # managed by Certbot
    
    
        listen 80;
        server_name immich.mydomain.ru;
        return 404; # managed by Certbot
    
    
    }


    Не для обучения, учусь — это, так сказать, сам процесс.
    Основной смысл содеянного —
    1. Необходим доступный фотоархив для хранения семейных фото - в его роли Immich.
    2. Необходимо облако в котором хранится и редактируется рабочая документация - в роли облака Nextcloud. Размер облака, должен зависеть только от моих хотелоки оно не должно отваливаться на санкционных территориях, как это сделали все гугловские сервисы, когда я заехал на объект в Мариуполе (:
    3. Хотелось поднять свой сайт на своих же мощностях.
    4. Возможно, если осилю, поднять сервер под Q2 для вечерних, товарищеских забегов. Мануал уже глянул и ужаснулся, т.к. суммарно всё проделанное ранее было проще (:

    Сам я занимаюсь промышленной автоматикой, когда-то давно, году в 2005-2010, занимался эникеем, а тут еще и подвернулась пара серверов по цене одного выхода в кафе. Ну и, по совокупности причин, было принято решение собирать всё самостоятельно.
    По итогу стоит стойка, в ней живет:
    ASA 5510 с SSM-10 (до неё руки еще не дошли, но это следующий этап после подъема почтовика)
    Пара цисковских же серверов, собранные в кластер, с Proxmox на борту.
    ИБП (1кВт) с которого живёт стойка до выхода на режим генератора.
    ИБП (2,75кВт)с которого живет дом, так же до переключения питания на генератор.
    и всё это стало дешевле чем Синолоджи на 4 диска ))

    В дальнейшем хочу реорганизовать начинку серверов, т.к. на текущий момент у них по одному абсолютно идентичному камню, хочу оба камня переселить в один, а в тот который будет более загруженный поселить пару камней постарше и приобрести третий - резервный, что бы на него мигрировали ВМ.
    Ну и продублировать выход в сеть через 4G модем.
    Я прекрасно понимаю, что у меня цель не стать сисадмином, а просто поднять определенную структуру, которая должна работать стабильно.
    Возможно, дешевле было бы взять какой-нибудь Synology NAS и не делать себе мозг, но тут же свой кайф от возможностей, да и учиться я люблю, знания никогда лишними не будут.
    Написано
  • Как решить проблему с Immich после подключения обратного прокси?

    Strelok13
    @Strelok13 Автор вопроса
    Со стороны ВМ c Immich, т.е. порта 2283, SSL нет. Но со стороны того же Nextcloud'a я тоже не ставил никаких сертификатов, всё только на стороне Nginx.
    Написано
  • Как решить проблему с Immich после подключения обратного прокси?

    Strelok13
    @Strelok13 Автор вопроса
    Спасибо.
    Раньше он шел без ssl, по http.
    Направление принял, днём начну копать в эту сторону, сейчас уже мозг кипит, 6 часов с обратным прокси и NextCloud провозился.
    Написано
  • Как настроить выход серверов с одного ip?

    Strelok13
    @Strelok13 Автор вопроса
    Петровский, отчет, спустя 4 месяца (:
    Ваш напутствующий пинок в сторону обратного прокси сработал, увы с задержкой, но тут у меня есть честная отмазка — было мало свободного времени в декабре-январе, т.к. сдавали гособъект.

    Поставил Caddy, сломал себе мозг конфигами и неудачной установкой Hugo в качестве движка сайта.
    Снёс Caddy.
    Поставил и настроил Nginx.
    Поднял Worpress с сайтом.
    Немного прикрыл тылы сайта через Wordfence.
    Закрыл доступ к Nextcloud и Immich через NAT.
    Создал и настроил субдомены под них.
    Настроил выпуск сертификатов через certbot, на домен и субдомены.
    Вылечил болячку Nextcloud'а при переходе из HTTP в HTTPS.
    И уронил Immich (: вероятнее всего за счет той же смены HTTP на HTTPS.

    Посему, хотел бы призвать Вас на помощь в вопросе с Immich, если это в вашей компетенции.
    Как решить проблему с Immich после подключения обратного прокси?
    Написано
  • Как настроить выход серверов с одного ip?

    Strelok13
    @Strelok13 Автор вопроса
    Вобще, концепция вывода разных виртуалок по разным субдоменам мне очень понравилась.
    Написано
  • Как настроить выход серверов с одного ip?

    Strelok13
    @Strelok13 Автор вопроса
    Петровский, понял, значит придется осваивать проброс портов и настройку ASA.
    С другой стороны, мозги хоть не застаиваются, давно уже такие объемы новой информации не приходилось усваивать.
    Написано
  • Как настроить выход серверов с одного ip?

    Strelok13
    @Strelok13 Автор вопроса
    Петровский, Caddy запустил, а вот в порты играл и проиграл.
    Т.е. прописывание в перенаправлении портов 80 и 443 на IP виртуалки с Caddy или добавление IP Caddy в DMZ не помогает, или же не открывается ничего (при DMZ), или открывается вебморда роутера (при прописанных портах 80 и 443). Причем при прописанном 443, он всё равно виден закрытым.
    Но получилось дать доступ к виртуалке, которой нужен 80-й порт, через другой внешний (2286) и эта переадресация портов сработала.
    Сейчас таблица адрессации выглядит вот так, DMZ выключен, если он включен, то почти по всем портам, кроме 2283, открывается NextCloud.
    672b4e7f96d96535487882.png

    Зато прописал у хостера IP сервера и теперь по url сайта можно зайти вебморду роутера (:
    Написано
  • Как настроить выход серверов с одного ip?

    Strelok13
    @Strelok13 Автор вопроса
    Выкинуть убогий роутер, воткнуть провайдера в ASA
    - тут понятно
    организовать для торчащих наружу сервисов отдельный сегмент, а в идеале отдельный контекст, и настроить dnat как душе угодно
    тут еще непонятно
    Веб сервисы лучше выпускать через реверс прокси(nginx) - не будет геморроя с портами и SSL
    - тут уже понятно ))

    запустил Caddy, т.к. его советовали выше, да и нагрузки большой у меня не предполагается, но почему-то всё равно не смог в порты.
    Т.е. прописывание в перенаправлении портов 80 и 443 на IP виртуалки с Caddy или добавление IP Caddy в DMZ не помогает, или же не открывается ничего (при DMZ), или открывается вебморда роутера (при прописанных портах 80 и 443). Причем при прописанном 443, он всё равно виден закрытым.
    С ASA только начал разбираться.
    Написано
  • Как настроить выход серверов с одного ip?

    Strelok13
    @Strelok13 Автор вопроса
    Петровский, SSM-10, по идее, должен как раз анализировать входящий трафик.
    Написано
  • Как настроить выход серверов с одного ip?

    Strelok13
    @Strelok13 Автор вопроса
    Петровский, я так и понял.
    Для того что бы не хакнули, я как раз хотел настроить ASA5510. Теперь стало чуть больше понимания в процессах маршрутизации и работе с портами. Но ваш вариант, вероятнее всего будет быстрее и проще, а АСА станет сверху как дополнительный уровень безопасности, особенно если смогу осилить настройку комплектного модуля SSM-10.

    Всем участникам дискуссии, огромная благодарность, за то что не отказали в помощи аматору (:
    Написано
  • Как настроить выход серверов с одного ip?

    Strelok13
    @Strelok13 Автор вопроса
    Петровский, понял. Чем заняться вечером у меня есть (:
    Написано
  • Как настроить выход серверов с одного ip?

    Strelok13
    @Strelok13 Автор вопроса
    Петровский, https это, судя по всему, отдельная история. Как я понимаю, там надо будет раскуривать концепцию с SSL, а я пока работу с сертификатами на освоил.
    Написано
  • Как настроить выход серверов с одного ip?

    Strelok13
    @Strelok13 Автор вопроса
    Петровский, уиии.. *картинка с Матроскиным* Заработало!
    Действительно, необходимо было зачистить порт триггеринг и тогда порты начали работать адекватно.
    Теперь буду раскуривать мануалы, как правильно работать с портами.
    Я же правильно понимаю, что я могу прописать правила для открытия портов, по условной схеме
    Внешний порт: 1234
    Внутренний порт: 80
    IP: 192.168.0.S1
    И при попытке зайти на условный внешний IP 91.91.91.91:1234 я буду перенаправлен в порт 80 устройства 192.168.0.S1 ?
    Написано