Ускоряем производительность в nginx proxy

При включении nginx в качестве front-end proxy проседают "попугаи". Это в целом естественно, так как есть задержка на передачу пакетов между nginx <-> apache, но можно несколько ускорить и выиграть до 15%

# vim /etc/nginx/nginx.conf

worker_processes  3;    #Numcores -1

events {
...
    use epoll;
}


http {
... 
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
...
}

# vim /etc/nginx/vhosts/www-root/example.com

location @fallback {
....
    proxy_buffering off;

...
}

postgresql сжать базу

Иногда так бывает, что сильно разрослась база данных postgresql и необходимо ее сжать, так как занимает слишком много места на диске (высвободить место которое свободно)

Делаем так

1. Бэкапим /var/lib/postgresql

2. Коннектимся в postgres

su postgres
psql


смотрим список баз

\l

подключаемся к базе

\c database_name

Затем выполняем сжатие баз

vacuum full verbose;

И также перестраиваем индексы

reindex database database_name;

Полезные ссылки:
https://stackoverflow.com/questions/769683/show-tables-in-postgresql
https://dba.stackexchange.com/questions/1285/how-do-i-list-all-databases-and-tables-using-psql
https://www.techonthenet.com/postgresql/vacuum.php

Правильный /tmp в ubuntu 16.04 desktop на ramdisk

sudo cp /usr/share/systemd/tmp.mount /etc/systemd/system/tmp.mount
sudo systemctl disable tmp.mount
sudo systemctl start tmp.mount

Nginx Unit + Bitrix настройка

Установка с модулем

yum install unit unit-php

Настраиваем nginx

[root@nginx-unit ~]# cat /etc/nginx/conf.d/default.conf
upstream unit_bitrix_urlrewrite {
    server 127.0.0.1:8090;
}
upstream unit_bitrix_direct {
    server 127.0.0.1:8091;
}

server {
    listen      80;

    root        /var/www/html/;

    index index.php;

    proxy_read_timeout 90s;
    client_max_body_size 64m;

    location / {
        try_files $uri @urlrewrite_php;
    }

    location @urlrewrite_php {
        proxy_pass       http://unit_bitrix_urlrewrite;
        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 ~* \.php$ {
        try_files        $uri =404;
        proxy_pass       http://unit_bitrix_direct;
        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;
    }
}


Настраиваем unit

[root@nginx-unit ~]# cat bitrix.json
{
    "listeners": {
        "127.0.0.1:8090": {
         "application": "bitrix_urlrewrite"
        },

        "127.0.0.1:8091": {
          "application": "bitrix_direct"
        }
    },

    "applications": {
        "bitrix_urlrewrite": {
            "type": "php",
              "processes": {
               "max": 20,
               "spare": 5
              },
            "user": "apache",
            "group": "apache",
            "root": "/var/www/html/",
            "script": "bitrix/urlrewrite.php"
        },

        "bitrix_direct": {
            "type": "php",
              "processes": {
               "max": 20,
               "spare": 5
              },
            "user": "apache",
            "group": "apache",
            "root": "/var/www/html/",
            "index": "index.php"
        }
    }
}



Заливаем конфиг

curl -X PUT -d @bitrix.json --unix-socket /run/unit/control.sock http://localhost/config
 

Полезные ссылки

https://unit.nginx.org/howto/wordpress/
https://habr.com/ru/company/itsumma/blog/337346/
https://sysadmin.pm/nginx-unit/
Скрипт проверки соответствия Bitrix http://www.1c-bitrix.ru/download/files/scripts/bitrix_server_test.php
  

Примечание

На unit.nginx.org указано в action": { "pass" - такая конфигурация не проходит контроль на unit-1.8.0-1.el7.remi

Подключить swap swapfile на Linux

dd if=/dev/zero of=/swapfile bs=1M count=2048 ; chmod 600 /swapfile ; mkswap /swapfile ; swapon /swapfile ; echo '/swapfile none swap sw 0 0' >> /etc/fstab

Сбросить настройки бренда на default в ISPmanager

Бывают случаи когда (скажем после повреждения/удаления руками файлов) ломаются напрочь настройки бренда ISPmanager (панель грузится без стилей и никакие кнопки не работают, ссылки на логотип имеют вид 10.12.13.14:1500/manimg/orion/local_2bc1fc3e5e78/login-logo-ispmgr.svg  и такого файла нет по данной ссылки

Как исправить?

Очень просто - логинимся в COREmanager 10.12.13.14:1500/core и там будет нормальная тема оформления - далее в Настройки бренда и там можно для ispmgr сбросить настройки по умолчанию

Именуем интерфейсы по-старому eth0 вместо ens3

Как известно, сейчас Linux дистрибутивы именуют интерфейсы по новому алгоритму. Если хочется старых добрых eth0 / eth1, то это меняется в параметрах ядра net.ifnames=0


# vi /etc/default/grub

GRUB_CMDLINE_LINUX="net.ifnames=0"

# update-grub2

Отключить патчи meltdown и spectre

# vi /etc/default/grub

GRUB_CMDLINE_LINUX="nospectre_v2 nopti nospec_store_bypass_disable noibrs noibpb"

# update-grub2

yum удалить пакет только из базы не трогая файлы ключ --justdb

rpm -e --justdb --nodeps packagename

2 раза на неделе требовалось, сначала недобновленная CentOS 7 где задвоились пакеты, потом апгрейд очень старой версии гермошлема где pkg-httpd переименовывался и конфликтовал

P.S.
в dpkg правками /var/lib/dpkg/status

bitrix php-fpm ЧПУ rewrite в ISPmanager

if (!-e $request_filename) {
       rewrite  ^(.*)$  /bitrix/urlrewrite.php last;
    }