• Свой днс сервер обновляет записи быстрее?

    да быстрее
    Ответ написан
    Комментировать
  • Сделать редирект убрать "?start=0" в конце?

    shambler81
    @shambler81 Куратор тега htaccess
    1 и то и друго не является "нормальным" адресом поскольку у них есть гет запрос в любом случае, в следствие этого у вас имеется куча страниц с одинаковыми тайтлами и дескрипшенами, только с разным контентом внутри.
    В следствие этого у вас страниц "тостеры красные бош" будет 30 страниц, по сути каждая страничка пейдженации
    смотри канибализация запросов
    По этому я бы рекомендовал
    1. риал каноникал на страничу без гет параметров
    2. запретить гет запросы в робот txt
    3. Собрать нормальное ЧПУ
    4. пейдженацию убрать за аякс ( опционально)
    5. убрать устаревшую пейдженацию и поставить https://developers.google.com/search/docs/guides/l... он реально крут.

    теперь ответ на твой ответ ;)

    RewriteCond %{QUERY_STRING} (^|&)start\=0($|&)
    RewriteRule ^forum/topic1$ /forum/topic1? [L,R=301]
    Ответ написан
    Комментировать
  • Как написать правило .htaccess на запрос пароля?

    shambler81
    @shambler81 Куратор тега htaccess
    AuthUserFile /var/www/mysite/.htpasswd
    AuthName "Please Log In"
    AuthType Basic
    require valid-user
    Order allow,deny
    Allow from 192.168.1.1
    satisfy any
    Ответ написан
  • Как скрыть пароль mysql в bash-скрипте?

    Так будет лучше чем держать чем все базы в одном файле
    Пример дампа всех баз в отдельные файлы

    #!/bin/sh
    #скрипт бэкапа баз данных
    ###########################
    #Создаем папку для архивов.  -p не ругается когда папка уже есь test проверяет есть ли папка  для чистых логов
    test ! -d /var/backup/mysql/`date +%Y` && { mkdir -p /var/backup/mysql/`date +%Y` ; }
    test ! -d /var/backup/mysql/last && { mkdir -p /var/backup/mysql/last ; }
    
    #прячем от умных, и так не зайдут но всеже.
    chmod 600 /var/backup/mysql
    chmod 600 /var/backup/mysql/last
    
    # делаем сам дапм файлов sql, свежинькие файлы лежат всегда в ней, очень удобно не нужно заходить в архивы и искать там вчерашние базы, и логируется.
    for i in `mysql -uroot -p11111111 -e'show databases;' | grep -v information_schema | grep -v Database`; do mysqldump -uroot -pp11111111 $i > /var/backup/mysql/last/$i.sql;done >> /dev/null 2>> /var/log/sqlbackup.log
    # Архивируем дамп, ну и логируем разумеется
    cd /var/backup/mysql/
    tar -czvf /var/backup/mysql/`date +%Y`/sqldump-`date +%Y-%m-%u`.tar.gz ./last >> /dev/null > /var/log/sqlbackup.log
    #(echo "Subject: Бэкап mysql  klondike-server завершен"; cat /var/log/sqlbackup.log;) | /usr/sbin/sendmail  viktor@7877796.ru
    ##################  Конец скрипта
    
    #  БЭКАП /etca
    test ! -d /var/backup/etc/ && { mkdir -p /var/backup/etc/ ; }
    DATE=`date +%F`;
    BACKUPPATH="/var/backup/etc";
    find $BACKUPPATH/ -mtime +60 | xargs rm -f; #удаляет предыдущие бэкапы старше 60 дней.
    tar -czvf "$BACKUPPATH/etc.$DATE.tar.gz" /etc/ > /dev/null 2> /dev/null;


    ну или вариант .
    #!/bin/sh
    # Пример пути до сайта /var/www/site.ru/web/
    SITEDIR="/var/www"                                  # Папка до названия доменаов
    WEB="web"                                           # Папка после названия доменов (если есть)
    DBCONN="bitrix/php_interface/dbconn.php"            # Откуда читать настройки mysql
    FTPUSER="111111111"                                   # Логин FTP сервера
    FTPPASS="111111111111111"                        # Пароль FTP
    FTPHOST="u113948.your-storagebox.de"                # сервер FTP
    FTPDIR="/11111.ru/site/"                             # папка на FTP
    TMPDIR="/var/backup/site"                           # Где будут храниться временные файлы
    DATE=`date +"%Y-%m-%d"`                             # Формат даты в имени файла
    DATEYM=`date +%Y`/`date +%m`                        # Второй форматы даты
    LIST=${1:-`ls -L $SITEDIR | grep -E ".*\.\w{1,5}" | grep -v "restore.php" | grep -v "klondike.php"`} # Название сайта, тут выбор или аргумент или, регулярка  можно убрать только -L ;)
    
    test ! -d $TMPDIR/$DATEYM && mkdir -p $TMPDIR/$DATEYM # создаем  структ уру каталогов если их нет
    
    for ELEMENT in $LIST
        do
                    if [ ! -f /$SITEDIR/$ELEMENT/$WEB/$DBCONN ];
                            then
                                echo " Файл $SITEDIR/$ELEMENT/$WEB/$DBCONN не найден, сайт будет без БД!"
                            else
                                    DBLOGIN=$(grep "^\$DBLogin =" $SITEDIR/$ELEMENT/$WEB/$DBCONN | cut -f2 -d'"')
                                    DBPASS=$(grep "^\$DBPassword =" $SITEDIR/$ELEMENT/$WEB/$DBCONN | cut -f2 -d'"')
                                    DBNAME=$(grep "^\$DBName =" $SITEDIR/$ELEMENT/$WEB/$DBCONN | cut -f2 -d'"')
                                    mysqldump -u$DBLOGIN -p$DBPASS $DBNAME > $SITEDIR/$ELEMENT/$WEB/$DBNAME\-$DATE.sql && echo "Дамп БД $DBNAME будет сохранен в корне сайта"  ||  echo "Ошибка дампа базы данных " $DBNAME
                                    sed -i "/\/*40101 SET/d" $SITEDIR/$ELEMENT/$WEB/$DBNAME\-$DATE.sql
                                    sed -i "/\/*40103 SET/d" $SITEDIR/$ELEMENT/$WEB/$DBNAME\-$DATE.sql
                                    sed -i "/\!40111 SET/d" $SITEDIR/$ELEMENT/$WEB/$DBNAME\-$DATE.sql
                                    sed -i "/\!40014 SET/d" $SITEDIR/$ELEMENT/$WEB/$DBNAME\-$DATE.sql
                                    sed -i "/\!40000 ALTER/d" $SITEDIR/$ELEMENT/$WEB/$DBNAME\-$DATE.sql
                                    #echo "SET NAMES 'utf8' COLLATE 'utf8_unicode_ci';" > $SITEDIR/$ELEMENT/$WEB/bitrix/backup/$DBNAME\-$DATE\_after_connect.sql
    
                    fi
    
        echo "Архивируем сайт $ELEMENT"
            tar -cvpzf $TMPDIR/$DATEYM/$ELEMENT-$DATE.tar.gz --directory $SITEDIR/$ELEMENT/$WEB --ignore-failed-read --exclude='./bitrix/tmp' --exclude='./bitrix/updates' --exclude='./bitrix/backup/*\.gz*' --exclude='./bitrix/backup/*\.tar*' --exclude='./bitrix/cache' --exclude='./bitrix/managed_cache' --exclude='./bitrix/stack_cache' --exclude='./upload/resize_cache' --exclude='./stats' . >> /dev/nool 2> /var/log/backup_error.log
            rm -f $SITEDIR/$ELEMENT/$WEB/$DBNAME\-$DATE.sql # поскльку ложим на реальный сайт, ибо нормально добавить в архив не получитяс.
            #rm -f $SITEDIR/$ELEMENT/$WEB/bitrix/backup/$DBNAME\-$DATE\_after_connect.sql
    
            echo "Сохраняем $ELEMENT на FTP"
            wput  --basename=$TMPDIR --limit-rate=60000K --timestamping  --tries=2 $TMPDIR/$DATEYM/$ELEMENT-$DATE.tar.gz ftp://$FTPUSER:$FTPPASS@$FTPHOST$FTPDIR
            rm -f $TMPDIR/$DATEYM/$ELEMENT-$DATE.tar.gz
    
    echo -en "\n\033[37;1;41m Ссылочка:\033[0m \e[1;4;36mwget ftp://u113948-sub1:11111111111@$FTPHOST/$DATEYM/$ELEMENT-$DATE.tar.gz\e[0m\n\n" #ks05
      done
    rm -r $TMPDIR

    Данный вариант уже поддерживает аргумент в виде сайта котормоу нужно сделать дампbxbump site.ru, так же он демпит сам сайт со спецификой движка ( тут битрикс) берет данные прям с конфига, заливает на внешний фтп
    Если аргумента нет то будет дамп всех сайтов и всех бд к ним
    ну и дает ссылку в режиме RO уже для чтения с этого сервера.
    p.s требует доустановку wput поскольку можно ограничить скорость аплоада
    Ответ написан
    1 комментарий
  • Как убрать папки из url?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteCond %{REQUEST_URI} ^/dir1/(.*)$ 
    # если строка начинается с /dir1/ 
    RewriteRule ^(.*)$ /dir1%1 [R=301,L] 
    #Перенаправить все урлы с начинающиеся с dir1 на dir2 с сохранением дальнейшей структуры URL

    Подробней писал тут
    https://klondike-studio.ru/blog/snipet-for-htaccess/

    Если же вам нужно ограничить количество и директорий
    ^/dir1/(.*)[^/]\.(.*)[^/]\.(.*)[^/]$

    (.*)[^/] -любое но не слеш
    Ответ написан
  • Имеет ли хостинг доступ к моему VPS?

    физически у админа есть доступ к твоим единичкам и ноликам поскольку у него есть доступ до физического устройства на котором они хранятся так что на первую часть вопроса ответ да, как бы ты не крутил.
    НО есть и отдельные НО
    в частности хостер может сам захотеть отстраниться от твоих единичек и ноликов, в таком случае
    Определенная група лиц имеющих доступ до системы "например разработчики АПи методов работы с твоей ВМ"
    работают изолированно и не могут иметь физического доступа к продакшен серверу, а могут рулить и крутить с впс на тестовой площадке.
    В контуре продакшен, может отсутствовать сотрудник с правами достаточными для входа на твою машину, а данные могут быть зашифрованы.
    Пароли харнятся в md5 - который вы сами понимаете не востановим.
    Вот и получается что при желание двухконтурная работа продакшен и дев группы сотрудников могут привести к следующему
    первая группа не имеет реальных данных
    вторая не имеет прав достаточных для управления вашими данными
    остается только тот человек который заливает первое на второе, теоретически он мог бы внести правки в код и задеплоить, оставив себе бэкдор. но это тоже легко убирается.
    В общем ответ такой
    ДА имеет, но если нужно будет самому хостеру он сделает так что его сотрудники физически не смогут это сделать.
    Ответ написан
    Комментировать
  • Механика работы proxy_connect_timeout?

    60 мало, тем более 3
    В прокси конект таймаут войдет и ответ сервера с той стороны, а следовательно и запрос в msyql
    Если ответа не будет за это время то вы увидите ошибку, и nginx дропнит это обращение в 500
    если же тянуть кота за ....
    то 1 вариант и второй может сильно загрузить один из бэк в следствие чего 3 явно мало, а в последнем случае равномерно нагрузить бэки для таймаута намного тяжелее и есле сервер не ответил за 3, то перейти на следующий в следствие этого при переключение клиент не заметит просадки, поскольк3 это не 60
    НО как я и говорил вы должны быть 100% уверены что за 60 и тем более 3 может выполнится тяжелый хит.
    В вашем случае есть вариант не выполнения тяжелого запроса за 3 секунды и он как дурак побежит по серверам в надежде получить хоть что-то, в результате даст 3 тяжелых хита на сервера и сдохнет.
    Ответ написан
    Комментировать
  • Как настроить правильно отправку писем с внешнего сервера?

    только вчера подключал ;) msmtpd

    host smtp-pulse.com
    account mxxxxxx.ru
    logfile /home/bitrix/mxxxxxx.ru.log
    port 587
    from office@mxxxxxx.ru
    
    так же постфикс тоже умеет это делать
    keepbcc on
    auth login
    user office@xxxxxxx.ru
    password LSsSdCLfasdf
    
    tls off
    tls_certcheck off


    Вот в этой вм по умолчанию почта ходит через него, да и админка консольная есть, плюс оптимизация скорости сайта есть.
    https://www.1c-bitrix.ru/products/vmbitrix/
    скрипт sh внизу
    Ответ написан
    Комментировать
  • Увеличение каких параметров сервера ускорит сайты?

    innodb_flush_log_at_trx_commit = 2
    Можно даже
    innodb_flush_log_at_trx_commit = 0

    SSD - однозначно
    Кеш php opcache
    php 7 и выше это прирост в 2 раза относительно 5.6
    php-FPM - самый быстрый
    Ну и главное, веб сайты любят не количество ядер, а их частоту.
    К примеру у меня на I9 , даже на 1 ядро 5GHz будет ваш сайт работать быстрей чем на этом дерьме 2.6, скольок бы вы там ядер не впихивали.
    https://ru.hetzner.com/hosting/produkte_rootserver/ex62
    цена -20% ндс поскольку это не в "встающей с кален стране"
    Ответ написан
    Комментировать
  • Как удалиить папки вместе с файлами в Shell скрипте?

    shambler81
    @shambler81 Куратор тега Linux
    это самая знаменитая команда в линукс
    имеющая даже совю страничку на лурке и на вики
    wikireality.ru/wiki/Rm_-rf
    lurkmore.to/Rm_-rf
    Ответ написан
    Комментировать
  • Как исправить 504 Gateway Time-out?

    server {
    ######################################################################
    ## Server configuration
    ######################################################################
            listen *:80;
            server_name antar-dv.ru www.antar-dv.ru   ;
            root /var/www/antar-dv.ru/web;
    ######################################################################
    ## Enable gzip for proxied requests and static files
    ######################################################################
        # Enable gzip for proxied requests and static files
        gzip on;
        gzip_proxied any;
        gzip_vary on;
        gzip_http_version 1.1;
        gzip_types application/javascript application/json text/css text/xml;
        gzip_comp_level 4;
    
    ######################################################################
    ## Log configuration
    ######################################################################
    #Все логи отключены
            error_log /dev/null crit;
            access_log off;
    ######################################################################
    ## Errors send to apache2
    ######################################################################
    # у апача своих алиасов куча,  а так же некоторая статика отдается
    # средствамси php, по этому все ошибки обрабатывать только apache2
            error_page 401 403 404 405 500 502 503 = @fallback;
            location @fallback {
                    proxy_pass              http://127.0.0.1:82;
                    proxy_set_header        Host            $host;
                    proxy_set_header        X-Real-IP       $remote_addr;
                    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                    }
    
    ######################################################################
    ## Locations configuration
    ######################################################################
    #Отключаем логирование ошибок No such file or directory
    ## Disable .htaccess files
    
            location ~ /\.ht {
                    deny all;
                    access_log off;
                    log_not_found off;
            }
            location = /favicon.ico {
                    log_not_found off;
                    access_log off;
            }
            location = /robots.txt {
                    allow all;
                    log_not_found off;
                    access_log off;
            }
    # сервисы  на сайте phpmyadmin почта и letxencrypt
            location /phpmyadmin/ {
                    deny all;
                    root  /usr/share/phpmyadmin/;
            }
            ##
            location /webmail/ {
                    rewrite ^/(.*)$ https://$http_host:8080/$1 permanent;
            }
            # letsencrypt
             location /.well-known/acme-challenge/ {
                    alias /usr/local/ispconfig/interface/acme/;
                    default_type text/plain;
    
             }
    # static content
    # Отдаем статику напрямую с nginx
            location ~* ^.+\.(jpg|jpeg|svg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|swf|flv|mp3)$ {
                    root  /var/www/antar-dv.ru/web;
                    access_log off;
                    expires 30d;
                    gzip_static on;
            }
    
    # default location
            location / {
                    index index.php index.html index.htm;
                    proxy_pass              http://127.0.0.1:82;
                    proxy_set_header        Host            $host;
                    proxy_set_header        X-Real-IP       $remote_addr;
                    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                                    }
    }
    
    server {
    
    ######################################################################
    ## Server configuration
    ######################################################################
            listen *:443 ssl http2;
                    server_name antar-dv.ru www.antar-dv.ru   ;
            root /var/www/antar-dv.ru/web;
    
    ######################################################################
    ## Enable gzip for proxied requests and static files
    ######################################################################
        gzip on;
        gzip_proxied any;
        gzip_vary on;
        gzip_http_version 1.1;
        gzip_types application/javascript application/json text/css text/xml;
        gzip_comp_level 4;
    
    ######################################################################
    ## SSL configuration
    ######################################################################
            ssl on;
            ssl_session_cache  shared:SSL:10m;
            ssl_session_timeout 1h;
            ssl_protocols TLSv1.2 TLSv1.1;
            add_header Strict-Transport-Security "max-age=15768000" always;
            ssl_stapling on;
            ssl_stapling_verify on;
            ssl_prefer_server_ciphers on;
            ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK;
            ssl_certificate /var/www/clients/client40/web42/ssl/antar-dv.ru-le.crt;
            ssl_certificate_key /var/www/clients/client40/web42/ssl/antar-dv.ru-le.key;
            ssl_dhparam /etc/nginx/ssl/dhparam.pem;
    ######################################################################
    ## Log configuration
    ######################################################################
    #Все логи отключены
            error_log /dev/null crit;
            access_log off;
    
    
    ######################################################################
    ## Errors send to apache2
    ######################################################################
    # у апача своих алиасов куча,  а так же некоторая статика отдается
    # средствамси php, по этому все ошибки обрабатывать только apache2
            error_page 401 403 404 405 500 502 503 = @fallback;
            location @fallback {
                    proxy_pass              https://127.0.0.1:4443;
                    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        HTTPS           YES;
                    }
    
    ######################################################################
    ## Locations configuration
    ######################################################################
    #Отключаем логирование ошибок No such file or directory
    ## Disable .htaccess files
    
            location ~ /\.ht {
                    deny all;
                    access_log off;
                    log_not_found off;
            }
            ##
            location = /favicon.ico {
                    log_not_found off;
                    access_log off;
            }
            ##
            location = /robots.txt {
                    allow all;
                    log_not_found off;
                    access_log off;
            }
    # сервисы  на сайте phpmyadmin почта и letxencrypt
            location /phpmyadmin/ {
                    deny all;
                    root  /usr/share/phpmyadmin/;
            }
            ##
            location /webmail/ {
                    rewrite ^/(.*)$ https://$http_host:8080/$1 permanent;
            }
            # letsencrypt
             location /.well-known/acme-challenge/ {
                    alias /usr/local/ispconfig/interface/acme/;
                    default_type text/plain;
    
             }
    # static content
    # Отдаем статику напрямую с nginx
            location ~* ^.+\.(jpg|jpeg|svg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|swf|flv|mp3)$ {
                    root  /var/www/antar-dv.ru/web;
                    access_log off;
                    expires 30d;
                    gzip_static on;
            }
    # default location
            location / {
                    index index.php index.html index.htm;
                    proxy_pass              https://127.0.0.1:4443;
                    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        HTTPS           YES;
                            }
    }
    Ответ написан
    Комментировать
  • Почему видео через iframe недоступно,а на youtube нормально проигрывается?

    1 у вас стоит X-Frame-Options SAMEORIGIN
    2. зачем афйрейм когда есть тег видео ? https://www.bustier.ru/video/
    Ответ написан
    Комментировать
  • Как прилепить последний row к самому низу родительского col?

    у флексов есть чудесная штука.
    margin-top: auto;
    В интернете видил отличную статью по этому поводу c примерами. и даже тыкал в рожу верстакам что все уже в этой жизни работает.
    что-то похожее
    https://webformyself.com/otzyvchivye-bloki-odinako...
    Ответ написан
    1 комментарий
  • Для каждого свой IP. Как?

    listen 192.165.55.2:80;
    Ответ написан
    Комментировать
  • Почему не подключается к БД через ssh?

    а у вас mysql разрешен доступ не на локалхост ?
    Ответ написан
    Комментировать
  • Почему не работает Редирект 301?

    покажи весь .htaccess
    Ответ написан
    Комментировать
  • RewriteRule: как добавить файл исключение?

    shambler81
    @shambler81 Куратор тега htaccess
    RewriteBase /
    RewriteCond %{SCRIPT_FILENAME} !-f
    RewriteCond %{SCRIPT_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !^/index\.php$
    RewriteRule ^.*$ index.php [L]
    Ответ написан
  • Как запустить на Linux 64 bit программы 32 bit, пишет что запускаемые файла это пустое место?

    shambler81
    @shambler81 Куратор тега Linux
    https://www.opennet.ru/opennews/art.shtml?num=49827
    https://3dnews.ru/989630
    и тд и тп
    вы уверены что вам нужны 32 битные библиотеки ?
    Ответ написан
    Комментировать
  • Какой дистрибутив Linux выбрать для программирования?

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