Задать вопрос
  • Nginx + certbot: как переместить один из поддоменов на другой сервер?

    1. на старом сервере все работает.
    2. Копируешь сайт а.site.ru на новый сервер
    3. копируешь СГЕНЕРЕНЫЕ ключи туда -же и включаешь их в nginx
    у себя на компьютере в .host файл вписываешь "1.1.1.1 a.site.ru" - где 1.1.1.1 -это новый айпи
    Перезапускаешь браузер на компе поключаешься првоеряешь сайт.
    После этого переписываешь А запись и удаляешь запись из host
    Как запись переехала, гневишь сертификат уже локально.
    Соответственно ставишь certbot letsencrypt через apt или что там у тебя ( ВАЖНО при тестах создани ключа добавляй --dry-run" и как только видеш что все сработало убираешь тесовый режим и гневишь уже реально сертификат ( так он не тратит 5 попыток в день)
    ВСЕ. указывая только домен a.site.ru www.a.site.ru
    ну или создаешь wildcard сертификат и юзаешь его и там и там.

    Как вариант поставь веб панель дабы они ставятся с 1 клик и бесплатные ( только на чистую ОС)
    ispconfig3
    aapanel только английский
    vestacp
    brainycp русский проприетарный но бесплатный
    И там уже создаешь сайт и галочкой создать сертификат.

    aapanel-letsencrypt-3.jpg.webp
    Ответ написан
    Комментировать
  • Как нужно настроить сетевые мосты чтобы подключаться по ssh, из одной гостевой Virtual Box машины к другой?

    shambler81
    @shambler81 Куратор тега Linux
    Блин я вот даже зашел и проверил правильно ли ответит GPT
    и да правильно, вообще не понимаю зачем такие вопросы задавать.
    скопируй свой вопрос и вставь в GPT
    он дат тебе инструкцию.
    Ответ написан
    Комментировать
  • Нужно по файловому серверу на Linux в два географически отдаленных филиала, какие есть варианты синхронизировать списки пользователей и файлы?

    shambler81
    @shambler81 Куратор тега Linux
    Отпишусь сюда как версию а не комментарий поскольку считаю это действительно единственным правильным решением.
    В вашем решение есть 1 минус.
    Вы пытаетесь изобрести транзакцию в том месте где ее по факту нет.
    Для параллельного изменения данных используется sql и писаться в файлах реализовать вполне возможно но как минимум как операция на гланды через ..пу.
    Дабы собрать сейчас веб интерфейс можно через GPT за минуту.
    если сли это документ, то гугл докс вам в помощь, или Битрикс24 документы, если форма то гугл формы.
    Но все эти решения так или иначе работают через транзакции в sql. Собственно это основная причина вообще существования самого sql и все хранят данные в нем а не в файлах именно по этой причине.

    Может если вы опишите больше вводных данных, с размерами способом применения будет более понятны причины и следствия а так же могу и измениться решения.
    К примеру это файл с логинами и паролями которые использует компания для подключений к клиентам.
    Ответ написан
    Комментировать
  • Как обновить сайт с сохранением старых роутов с использование Permanent Redirect?

    Здрасти приехали.
    1. Собираешь список ссылок (можно в веб мастере взять)
    2. поскольку новая структура то ссылки естественно ручками было стало в экселе. ( структкура кстати должна была быть сделана до начала проектирования нового сайта дабы ты ЧПУ делал уже максимально похожую в тех местах где это возможно)
    3. загружаем https://donatstudios.com/RewriteRule_Generator

    Проверяем стваим.
    Теперь частые вопросы
    1 - че все руками ? да
    2. два урл старый и новый или толкьо новый? - ответ только новый и редирект 301.
    3. как сделать чтоб не просели позиции (никак просядут пока сайт будет индексироваться но посколку у него будет лучше поведенческий фактор он должен подняться потом) но естественно не обязан.
    4. Пейджерный че делать с ней ? - а ее не должно быть в индексе только первая страничка. в99% случаях это справедливо.
    5 что если нужно все-же индексировать ? уже ничего вы должны были на этапе проектирвоания убрать свойства и фильтры в разные места. под свойства сделать структуру под фильтры ниечего.
    в идеале на сайте не должно быт ни 1 индекса с GET
    6. много страниц с GET (фильтыры) или нет - нет, нах не нужны уже как лет 10.
    Лучше 300 с хорошим поведением чем 300000.

    2 способо эксклюзивный но имеет место быть.
    если у тебя новый сайт но в нем откровенно некуда вести часть контента. и делать его желания нет.
    то тебе нужно чтоб новый сайт отдавал новый контент на тех урл на которых ЧПУ отдает что-то а там где на новом сайте нет, нужно отдавать старый сайт.
    В 404.php впихываем (перед отдачей кода естественно) php proxy который отдает старый сайт с домена прописанного в хосте локально. или лежащего на другом домене, по дороге меняя все нужные пути.
    я такое делал и даже работает.
    Логика такая
    200- ок работает движок
    404 - уходит в пхп файл который пытается найти 200 на стороне другого сайта и подменяет себя им, если не находит там 200 то соответственно отдает 404.
    все занимает около 300 строк кода.
    НО это эксклюзив
    Из плюсов такой реализации это 1 файл пхп который кодер с легкостью поймет, никаких костылей с nginx
    Ответ написан
    Комментировать
  • Использование переменных в SED bash скрипты?

    Вариант 1
    # Запрашиваем новый порт для SSH
    echo "Введите новый порт для SSH"
    read newport
    sed -i "s/#Port 22/Port $newport/I" /etc/ssh/sshd_config
    systemctl restart sshd.service
    echo "Порт изменен на $newport"

    Для отладки вместо -i поставь -e (изменения будет только в выводе)

    Однако если ты пишешь скрипт рекомендую сразу писать все функции, не забыть про проверки, а еще лучше вынести их вообще в отельную функцию, но это я уже уплыл по древу.
    Вариант 2
    #!/bin/bash
    
    # Функция для изменения порта SSH
    change_ssh_port() {
        local newport=$1  # Принимаем новый порт как аргумент функции
    
        # Проверяем, что порт является числом и находится в допустимом диапазоне
        if ! [[ "$newport" =~ ^[0-9]+$ ]] || [ "$newport" -lt 1 ] || [ "$newport" -gt 65535 ]; then
            echo "Ошибка: Порт должен быть числом от 1 до 65535."
            return 1
        fi
    
        # Заменяем строку с комментарием на новый порт в конфигурационном файле SSH
        sed -i "s/#Port 22/Port $newport/I" /etc/ssh/sshd_config
    
        # Проверяем, что конфигурация SSH корректна
        if sshd -t; then
            # Перезапускаем службу SSH для применения изменений
            systemctl restart sshd.service
            echo "Порт изменен на $newport"
        else
            echo "Ошибка: Конфигурация SSH некорректна. Изменения не применены."
            return 1
        fi
    }
    
    
    echo "Введите новый порт для SSH:"
    read newport  # Читаем новый порт от пользователя
    
    # Вызываем функцию с введенным номером порта
    change_ssh_port "$newport"
    Ответ написан
    Комментировать
  • Какой sata ssd максимально быстрый?

    посмотри поддерживается ли у тебя в принципе прошивка биос на Nvme диски и купи себе переходник на PCIe
    он дешевый или купи сразу диск формата pcie не забывай что m.2 это pci-e без каких-либо костылей.
    просо в другом формате, как они тебе будут продавать ультрасовременный порт 30 летней давности, тогда же ты задашь вопрос нах... вы мне продавали никому не нужный тормозной сата, когда у вас все это время был pcie, по этому они его перевернули уменьшели и сказали новый порт.
    Обрати внимание что загрузка с этого устройства потребует прошивки соответствующей на биос.
    Если е он посто под файлы то без проблем 100%
    Ответ написан
    4 комментария
  • Как запустить сценарий, при переходе на картинку?

    За это должно отвечать ЧПУ движка а не try_files
    думаю это самое адекватное поведение, генерацию урлов должен делать движок а не NGINX
    Как крайний вариант трай файл не должен находить их а следовательно 404
    и уже 404.php в котором движок подключен разумеется, разруливает этот урл (только естественно до отдачи кода 404!!!)
    Добавьте соответствующее исклюение в .htaccess
    чтоб эти урл уходили на движок
    Ответ написан
    Комментировать
  • Как привязать домен к серверу nginx?

    Купить доменное имя
    Припарковать его на любой ДНС сервер - NS1 NS2 вот это.
    В днс зоне создать А запись с IP
    Купить этот айпи, и рестартануть подключение, убедится что он доступен.
    Пробпросить порты на комп.
    в брендмауере открыть порты (обязательно) - если у тебя виртуалка ВМ в виртуалбоксе и тд.

    теперь битрикс
    смотри
    У битрикс вм есть админка, и сайты лучше создавтаь там.
    1. /home/bitrix - тут ( это в терминалогии фаерволов ВСЕ остальные) то есть все запросы на любые айпи домены с этм айпи -это мусорка и желательно не юзать ее а положить в папочке файлик сервер тот но пошло что-то не так.
    2. Создай сайт на битрикс вм указаав свой домен
    3. будет создна соответствующая папка /home/bitrix/ext_www/site.ru
    вот туда и ложи свой сайт, обарти внимниия что конфиги для бд там уже есть так что бд создавать тожене нужно.
    4. когда все заработало на 80 порту,. содаешь letsencrypt сертификаты.
    Желательно сайтв в студию поскольку сайт не является "персональной иформацией" а вот найти причину поможет.

    А ты полез куда-то писать свои конфгиги вобще не в ту степь полез
    Ответ написан
    Комментировать
  • Есть что то проще чем php?

    Братку это делается за 3 секунды на пхп
    там вообще изи.
    прям совсем, просто переименуй файл с html в пхп там прям совсем минимум.
    зайди онлайн на любой сайт с GPT и попроси его сделать пример.
    100% даст сразу правильный ответ

    создай header.php
    <!-- header.php -->
    <!DOCTYPE html>
    <html lang="ru">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Мой сайт</title>
        <link rel="stylesheet" href="styles.css">
    </head>
    <body>
        <header>
            <h1>Добро пожаловать на мой сайт</h1>
            <nav>
                <ul>
                    <li><a href="page1.php">Страница 1</a></li>
                    <li><a href="page2.php">Страница 2</a></li>
                    <!-- Добавьте другие ссылки -->
                </ul>
            </nav>
        </header>


    создай footer.php
    <!-- footer.php -->
        <footer>
            <p>&copy; 2023 Мой сайт. Все права защищены.</p>
        </footer>
    </body>
    </html>



    создай index.php
    <!-- index.php -->
    <?php include 'header.php'; ?>
    <main>
        <h2>Содержимое страницы 1</h2>
        <p>Это пример содержимого для первой страницы.</p>
    </main>
    <?php include 'footer.php'; ?>

    Ответ написан
    7 комментариев
  • 17 секунд задержка на первый запрос к серверу?

    1. замерь скорость отдачи просо файла к примеру robots.txt в момент провисания, если зависает и он на17 секунд то это точно до php
    2. - замерь скорость отдачи пхп файла с пхп инфо в нутри, ( исключишь проблемы работы fpm)
    3 - напиши файли на пхп с запросом какой-то таблицы в бд с отображением скажем списка пользователей ( GPT) напишет тебе за 1 секунду
    4. подключи ядро сайта и выведи хеллоу ворлд, и замеряй этот файл тоже ( не задействовать сложных компонентов)
    Теперь у тебя есть целый инструментарий, на основание этого ты исключить ( проблему кеширования сайта когда он отдается быстро но дохнет при создание кеша)
    2. Проблемы с sql поскольку провис будет при простом запросе к нему.
    3. проблему с фпм
    4. и соответственно просто текстовый файл отдается читсо nginx.
    И только после этого будем обсуждать днс и nginx поскольку это самое мало вероятное.
    Ответ написан
  • Комфортно ли будет использовать linux через портативный m2?

    shambler81
    @shambler81 Куратор тега Linux
    Эта высокая технология называется удаленный рабочий стол.
    1. ставишь в 1 клик сервер xrdp
    2 пробрасываешь порты, уж в офисе точно есть белый айпи, нет купи он стоит как пол шаурмы в месяц.
    3. ставишь пароль отличный от 12345
    4. с винды mstsc + галочка юзать все мониторы.
    5. с линукс remmina
    Смысл выдумывать велосипед с надежными как швейцарский нож флешками?
    Ответ написан
    6 комментариев
  • Что делает приведенное регулярное выражение?

    Примеры файлов, которые оно может определить:
    filename=example.txt{data}
    filename=report.pdf{info}
    filename=archive.zip{content}
    Ответ написан
    Комментировать
  • Как правильно конвертировать правило .htaccess?

    shambler81
    @shambler81 Куратор тега htaccess
    location / {
    try_files $uri $uri/ /index.php?path=$uri;
    }
    Ответ написан
    7 комментариев
  • Как вывести детальную новость?

    shambler81
    @shambler81 Куратор тега 1С-Битрикс
    https://www.youtube.com/watch?v=sVqQLWv1QWo
    смотри прям с первого видео и делай прям за ним.
    Просветление пойдет, пока ты начал не так.
    Ответ написан
    Комментировать
  • Как настроить описание страницы?

    shambler81
    @shambler81 Куратор тега 1С-Битрикс
    Битрикс не joomla тут и проще и тяжелее
    1. вы показали самое редко используемое место
    2. В зависимости от места и способ доабавления описания сильно отличаются.
    3. Вам в СЕО модуль, читайте он нем там достаточно легко.
    4. кеш это кешь он или сам пройдет или скинете.
    Ответ написан
    Комментировать
  • Утилита sed - как добавить строку с табуляцией и бэкслешем после строки, содержащей бэкслеш?

    Вот пример как сделать чтоб и проверка как завершилась команда, тут лишнее есть но думаю запись чтения с бд просто удалишь.

    Пример раз
    #!/bin/sh
    
    # Создаём резервную копию
    cp /etc/login.conf /etc/login.conf.bak
    
    ed
    # Используем ed для редактирования файла
    ed /etc/login.conf <<EOF
    /^\s*default:/
    a
    \t:charset=UTF-8:
    \t:lang=ru_RU.UTF-8:
    .
    w
    q
    EOF

    Вот еще через awk

    Пример два

    #!/bin/sh
    
    # Создаём резервную копию
    cp /etc/login.conf /etc/login.conf.bak
    
    # Используем awk для редактирования
    awk '/^default:/{print; print "\t:charset=UTF-8:\n\t:lang=ru_RU.UTF-8:"; next} 1' /etc/login.conf > /tmp/login.conf && mv /tmp/login.conf /etc/login.conf


    Не проверял но по идее должно работать.
    Так же не забывай запускать перед скриптом screen
    Но зато очень удобно вызывать и отлаживать .
    https://top-engineer.com/test2/1.sh
    а тут я скинул тебе примр с статусами кометами по кажодой команде
    Ответ написан
    1 комментарий
  • Возможно ли переписать это на PowerShell?

    shambler81
    @shambler81 Куратор тега Linux
    зачем в винде вшит линукс можно его и использовать с текущей файловой системой
    Ответ написан
  • Какая утилита root доступа для Linux работает в консольном режиме без белого ip?

    shambler81
    @shambler81 Куратор тега Linux
    ssh - единственный и правельный вариант
    ssh+тунельssh - если серый ip
    vpn+ssh - если совсем все плохо
    ssh+xrdp - если кисы, у убунте поднимаются галочкой, как в винде.
    И да у всех у них в любом случае коннект к nagios или zabbix ты же не **** мониторить их поездками? вот так же и сделай.
    Ответ написан
    Комментировать
  • Как в htaccess сделать редирект по регулярному выражению?

    https://site.ru/select-product.htm&whwidth_listv=a41b1903&whwidth_id=a41b1903e
    RewriteCond %{QUERY_STRING} (?:^|&)route\=product/select_pr(?:$|&)
    RewriteCond %{QUERY_STRING} (?:^|&)whwidth_listv\=a41b1903(?:$|&)
    RewriteCond %{QUERY_STRING} (?:^|&)whwidth_id\=a41b1903e(?:$|&)
    RewriteRule ^index\.php$ /select\-product.htm&whwidth_listv=a41b1903&whwidth_id=a41b1903e? [L,R=301]


    Осталось разобраться с переменной
    1. вместо переменной части ставим скобками переменную (.+)
    А вместо нее внизу вставляем %1 - не опечатка это не бакс а процент
    бакс был бы с самого RewriteRule а нам нужно взять из RewriteCond
    Ответ написан
    Комментировать