Подсчитать соединения к веб-серверу

netstat -na | awk '$4 ~ /.80/ && ! /.8080/ {print $5}' | cut -d . -f 1,2,3,4 | sort | uniq -c | sort -n

Использование планировщика AT в Linux

# at 12:00 +4day
at>


и пишем задание на 12:00 через 4 дня

CloudLinux 1 в 1 перенос особенность cagefs-skeleton

Собственно несем как обычно если ручками кроме каталога /usr/share/cagefs-skeleton/ (так как иначе едут залинкованные и закопированные туда файлы корня)

rsync -avP --exclude='/dev' --exclude='/proc' --exclude='/sys' --exclude='/run'  --exclude='/etc/fstab' --exclude='/usr/share/cagefs-skeleton/' root@62.10.10.10:/ /

Потом в rescue в /boot
dracut -f initramfs-3.10xxxx.img 3.10xxxx.x86_64
grub2-mkconfig -o /boot/grub2/grub.cfg

типа взлетает

но апач на все выдает ошибку 500 и в логи /var/log/lve.log
2017-02-12 10:33:38,682: (lvestats) [ERROR] Can't detect LVE version; [Errno 2] No such file or directory: '/proc/lve/list'

и апач в логи
Skeleton directory is not mounted: /usr/share/cagefs-skeleton
 
Делаем

cagefsctl --init
 
это закопирует линки с корня в /usr/share/cagefs-skeleton/
 
и 
 
cagefsctl --enable-cagefs

запустит систему LVE 

Полезная ссылка
https://docs.cloudlinux.com/index.html?moving_cagefs-skeleton_directory.html

mariadb в docker запустить

docker run --hostname 'mariadb-10.3' --name 'mariadb-10.3' -v '/var/lib/mariadb-10.3:/var/lib/mysql' -v '/etc/ispmysql/mariadb-10.3:/etc/mysql/conf.d' -p '127.0.0.1:3310:3306' --restart=always -d mariadb

bitrix решаем проблему с экспортом из 1с

Nginx

listen 82.140.12.12:80;

    if ($request_uri !~ "/bitrix/admin/1c_exchange.php"){
            return 301 https://domain.com$request_uri;
    }



Для апача чистого в .htaccess

RewriteEngine On
RewriteCond %{HTTPS} =off
RewriteCond %{REQUEST_URI} !^/bitrix/admin/1c_exchange.php
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

Ubuntu 18.04 firstvds настройка сети netplan systemd

Сеточка подымается в Ubuntu 18.04 через netplan как-то так на vkvm

# cat /etc/netplan/13-alj.yaml
network:
    version: 2
   renderer: networkd
   ethernets:
       ens3:
           dhcp4: no
           dhcp6: no
           addresses: [92.61.107.21/32,62.10.12.12/32,62.33.22.22/32,'2a01:230:2:47::161/64']
           gateway6: 2a01:230:2:47::1
           routes:
           - to: 0.0.0.0/0
             via: 10.0.0.1
             on-link: true
           nameservers:
               addresses:
               - 1.1.1.1
               - 8.8.8.8
               - 2606:4700:4700::1111
               search:
               - domain.com
           optional: true
   version: 2


И потом

netplan try
netplan apply


Через systemd (я лично против такого) есть статья https://nixtux.ru/506 - тупо копипаста ниже
nano /etc/systemd/network/50-1vds.network
 
[Match]
Name=ens*
[Network]
DHCP=no
# ping to Google DNS 8.8.8.8 is less than to Yandex 77.88.8.*
DNS=8.8.8.8
DNS=77.88.8.8
DNS=77.88.8.1
DNS=9.9.9.9
NTP=ntp.ubuntu.com
Gateway=10.0.0.1
[Address]
Address=21.109.197.147/32
Peer=10.0.0.1
 
212.109.197.147 замените на IP-адрес своего виртуального сервера (VPS, VDS) с виртуализацией KVM на хостинге. Name=ens* — проверьте, что в выводе команды ip a сетевой интерфейс называется, например, ens3, а не eth0; если eth0, то тогда: Name=eth*
sudo systemctl enable systemd-networkd
sudo systemctl start systemd-networkd

Добавлю что резолверы FirstVDS которые в ДЦ у них находятся
188.120.247.2
188.120.247.8
82.146.59.250

Настройка модуля Push and Pull birix модуля nginx с ISPmanager

Компилим nginx с модулем утянув его выше в папку из git https://github.com/wandenberg/nginx-push-stream-module

./configure --add-module=../nginx-push-stream-module

делаем общую include в /etc/nginx/conf.d/push-stream-module.conf


# Common settings for nginx-push-stream-module
push_stream_shared_memory_size 256M;
push_stream_max_messages_stored_per_channel 1000;
push_stream_max_channel_id_length 32;
push_stream_max_number_of_channels 200000;
push_stream_message_ttl 86400;

# поддержка мобильных платформ, для http запросов
server {
    # nginx-push-stream-module server for push & pull

    listen 8893;
    server_name _;
    
    # Include error handlers
    #include bx/conf/errors.conf;
    
    # Include im subscrider handlers
    #include bx/conf/im_subscrider.conf;
    
    location ^~ / { deny all; }
}

# поддержка мобильных платформ, для https запросов
# SSL enabled server for reading personal channels
server {
    listen 8894 ssl;
    server_name _;
 
    ssl_certificate "/var/www/httpd-cert/www-root/example.com.crtca";
    ssl_certificate_key "/var/www/httpd-cert/www-root/example.com.key"; 
 
    #include bx/conf/ssl.conf;
    
    # Include error handlers
    #include bx/conf/errors.conf;
    
    # Include im subscrider handlers
    #include bx/conf/im_subscrider.conf;
    
    location ^~ / { deny all; }
}

# для публикации сообщений
# Server to push messages to user channels
server {
    listen 127.0.0.1:8895;
    server_name _;
    
    location ^~ /bitrix/pub/ {
        push_stream_publisher admin;
        push_stream_channels_path $arg_CHANNEL_ID;
        push_stream_store_messages on;
        allow 127.0.0.0/8;
        deny all;
    }
    
    location ^~ / { deny all; }
    
    # Include error handlers
    #include bx/conf/errors.conf;
} 
 
 
 
 
делаем инклюдку для server {}

include /etc/nginx/push-stream-module-vhost.inc 


# Location for long-polling connections
location ^~ /bitrix/sub {
    # we don't use callback and droppped it (XSS)
    if ( $arg_callback ) {
        return 400;
    }

    push_stream_subscriber            long-polling;
    push_stream_allowed_origins "*";
    push_stream_channels_path        $arg_CHANNEL_ID;
    push_stream_last_received_message_tag    $arg_tag;
    if ($arg_time) {
        push_stream_last_received_message_time "$arg_time";
    }
    push_stream_longpolling_connection_ttl    40;
    push_stream_authorized_channels_only    on;
    push_stream_message_template '#!NGINXNMS!#{"id":~id~,"channel":"~channel~","tag":"~tag~","time":"~time~","eventid":"~event-id~","text":~text~}#!NGINXNME!#';
}

# Location for websocet connections
location ^~ /bitrix/subws/ {
    push_stream_subscriber websocket;
    push_stream_channels_path        $arg_CHANNEL_ID;
    push_stream_websocket_allow_publish    off;
    push_stream_ping_message_interval    40s;
    push_stream_authorized_channels_only     on;
    push_stream_last_received_message_tag    "$arg_tag";
    push_stream_last_received_message_time    "$arg_time";
    push_stream_message_template '#!NGINXNMS!#{"id":~id~,"channel":"~channel~","tag":"~tag~","time":"~time~","eventid":"~event-id~","text":~text~}#!NGINXNME!#';
}


Включаем в битриксе

Оригинал https://dermanov.ru/exp/configure-push-and-pull-module-for-bitrix24/

libvirt kvm restart

# rm -f /run/ebtables.lock ; killall -9 virsh; systemctl restart systemd-{journald,udevd,logind,machined} ; systemctl restart libvirtd

посмотреть нагрузку openvz по контейнерам

# vzlist -octid,laverage -s -laverage | head -n11