1. Приветствую гостей и пользователей нашего форума! Первый раз вы у нас или же давно участвуете в жизни ресурса, хочу напомнить несколько моментов.

    1) Пользуемся поиском по форуму! Зачастую информация может находиться не по разделу!

    2) Раздел ИНФО-продуктов относительно новый, но имеем уже более 3000 высококлассных материалов (пользуемся сортировкой по прификсам).

    3) И самое важное, КАК КАЧАТЬ БЕЗ ОГРАНИЧЕНИЙ, вся информация находится по этой ссылке КУПИТЬ VIP

    4) Временная акция, получи +5 постов за вступление в нашу группу "Вконтакте" Более подробно ТУТ

    5) Веди активную жизнь на форуме и получай рубли на личный счёт!

    Скрыть объявление
  2. На нашем форуме Null-Prog действует серьёзное правило касательно размещения материалов!

    ДЛЯ РЕЛИЗЁРОВ: категорически запрещается выкладка материалов на файлообменники типа Deposit, letitbit и другие, требующие просмотров рекламы, обрезающие скорость и тд. Нарушителям, первые 2 раза предупреждения, далее БАН. Тему по этому поводу можно посмотреть ТУТ

    Скрыть объявление
  3. В тестовом режиме на нашем форуме открыт онлайн конструктор сайтов. Вы можете попробовать создать свой сайт у НАС, интуитивно понятный интерфейс, переведёт на 95%, быстрый экспорт проекта, от вас только перетаскивать элементы и вставить в них необходимый текст!

    Все вопросы ТУТ

    Скрыть объявление

  4. Скрыть объявление
  5. Уважаемые форумчане, открывается новый раздел форума, посвящённый ремонту и эксплуатации автомобилей. Просмотреть его можно ТУТ

    Так как раздел новый, информация будет пополнять каждый день. Если есть какие либо замечания по этому разделу, отписываемся в соответствующий раздел форума, либо в личку.

    Напоминаю, сообщения в разделе АВТО не учитываются, общение не ограничено.

    Скрыть объявление
  6. Объявляется набор Модераторов на различные раздел форума, свои заявки можно оставлять в ЭТОМ разделе, перед оставлением заявки рекомендуется ознакомиться с ПРАВИЛАМИ для модераторов.

УСТАНОВКА, НАСТРОЙКА И ОПТИМИЗАЦИЯ ВЕБ-СЕРВЕРА НА DEBIAN

Тема в разделе "Администрирование серверов", создана пользователем Sam Jack, 19 май 2015.

  1. Sam Jack

    Sam Jack Капитан-Узурпатор
    Команда форума Созидатель

    Регистрация:
    5 май 2015
    Сообщения:
    13.755
    Симпатии:
    4.730
    Оптимизация apache

    Прежде всего включаем следующие модули:
    deflate, expires, headers, php5, rpaf (установить его если не настроен)

    Затем настраиваем виртуальные хосты:

    <Directory />
    Options FollowSymLinks
    AllowOverride All
    Order Allow,Deny
    Allow from all
    </Directory>
    NameVirtualHost *
    Listen *:80
    Include /etc/apache2/sites/


    Затем для каждого сайта добавляем свои файлы в /etc/apache2/sites/ следующего формата:

    <VirtualHost *>
    ServerName example.ru
    ServerAlias www.example.ru
    DocumentRoot /home/example.ru/docs/
    ErrorLog /home/example.ru/logs/error.log
    CustomLog /home/example.ru/logs/access.log combined
    </VirtualHost>


    Теперь перейдем к оптимизации. Добавляем файл /etc/apache2/conf.d/optimize (по рекомендациям webo.in):

    # добавляем Content-Type для всех файлов с расширением .gz
    AddEncoding gzip .gz
    # включаем сжатие для HTML- и XML-файлов
    AddOutputFilterByType DEFLATE text/html
    AddOutputFilterByType DEFLATE text/xml
    # и для иконок (об этом чуть ниже)
    AddOutputFilterByType DEFLATE image/x-icon
    # также для CSS- и javascript-файлов
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE text/javascript
    AddOutputFilterByType DEFLATE application/x-javascript
    # выставляем максимальную степень сжатия (если возникнут проблемы с
    # серверной производительностью, следует уменьшить до 7 или 1)
    DeflateCompressionLevel 9
    # и максимальный размер окна для архивирования
    DeflateWindowSize 15
    # отключаем архивирование для «проблемных» браузеров
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
    # добавляем заголовок Vary для корректного распознавания браузеров,
    # находящихся за локальными прокси-серверами
    Header append Vary User-Agent
    # запрещаем кэширование на уровне прокси-сервера для всех файлов,
    # для которых у нас выставлено сжатие,
    <FilesMatch .*\.(css|js|php|phtml|shtml|html|xml)$>
    Header append Cache-Control: private
    </FilesMatch>
    #Устанавливаем Expires
    <IfModule mod_expires.c>
    ExpiresActive On
    ExpiresDefault "access plus 1 week"
    </IfModule>

    # Устанавливаем ETag
    FileETag MTime Size


    Можно переходить дальше.

    Оптимизация Nginx

    Первым делом заставляем apache слушать локальный нестандартный порт:

    Listen 127.0.0.1:8080


    И правим файл /etc/nginx/nginx.conf примерно так:

    user www-data;
    worker_processes 2;

    error_log /var/log/nginx/error.log;
    pid /var/run/nginx.pid;

    events {
    worker_connections 1024;
    }

    http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    log_format main '$remote_addr - $remote_user [$time_local] $status '
    '"$request" $body_bytes_sent "$http_referer" '
    '"$http_user_agent" "http_x_forwarded_for"';
    access_log /var/log/nginx/access.log;

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 30;

    gzip on;

    server {
    listen 80;

    location / {
    proxy_pass http://127.0.0.1:8080/;
    proxy_redirect off;
    log_not_found off;

    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    client_max_body_size 10m;
    client_body_buffer_size 128k;

    proxy_connect_timeout 40;
    proxy_send_timeout 90;
    proxy_read_timeout 40;

    proxy_buffer_size 4k;
    proxy_buffers 4 32k;
    proxy_busy_buffers_size 64k;
    proxy_temp_file_write_size 64k;
    }
    }
    }


    Перезагружаем apache и nginx. Наблюдаем за уже значительным увеличением производительности.

    Оптимизация PHP

    После установки PHP, также устанавливаем eaccelerator. Затем правим php.ini

    max_execution_time = 30
    Сколько CPU-секунд может потреблять скрипт

    max_input_time = 60
    Как долго (в секундах) скрипт может ждать входных данных

    memory_limit = 32M
    Какое количество памяти (в байтах) может расходовать скрипт, прежде чем он будет убит. Для неслабых приложений следует устанавливать этот лимит больше 64M

    output_buffering = 4096
    Какое количество данных (в байтах) накапливается в буфере, прежде чем они будут отправлены клиенту


    Размер этих значений обычно зависит от приложения. Если вы принимаете от пользователей большие файлы, max_input_time может быть увеличен или в php.ini, или путем его переопределения в коде. Подобным образом, для программ, потребляющих большое количество CPU или памяти могут потребоваться более высокие значения. Цель состоит в том, чтобы уменьшить воздействие "прожорливой" программы, поэтому глобальная отмена этих настроек не рекомендуется. Другое замечание относительно max_execution_time: это относится ко времени, затраченному CPU на процесс, а не к абсолютному времени. Таким образом, программа, совершающая большое количество вводов/выводов и небольшое количество вычислений, может выполняться намного дольше, чем max_execution_time. max_input_time также может быть больше, чем max_execution_time.

    Количество записей, которые может сделать PHP, может настраиваться. В промышленной эксплуатации экономят место на диске, отменяя все журналы, кроме самых критических. Если журналы необходимы для диагностики проблем, вы можете вернуть то журналирование, которое необходимо. error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR включает журналирование, достаточное для выявления проблем, но удаляет из скриптов лишнюю информацию.

    Оптимизация MySQL

    Первым делом используем скрипты:
    MySQLtuner.sh и tuning-primer.sh. Следуя появляющимся инструкциям настраиваем my.cnf.

    Для правильной работы в кодировке utf8 в файле /etc/mysql/my.cnd настраиваем следующее (в соответствующих секциях):

    [client]
    port = 3306
    socket = mysql
    default-character-set=utf8

    [mysqld]
    port = 3306
    socket = mysql
    skip-locking
    init_connect='SET collation_connection = utf8_general_ci'
    init_connect='SET NAMES utf8'
    default-character-set=utf8
    character-set-server = utf8
    collation-server = utf8_general_ci
    [mysql]
    default-character-set=utf8
    key_buffer = 1M
    max_allowed_packet = 2M
    table_cache = 4
    sort_buffer_size = 64K
    read_buffer_size = 256K
    read_rnd_buffer_size = 256K
    net_buffer_length = 2K
    thread_stack = 64K
    query_cache_limit = 256K
    query_cache_size = 4M


    Проверять переменные можно этими запросами:

    show variables like "%character%";
    show variables like "%collation%";


    Чтобы задать кодироку по-умолчанию (напр. если была latin1):
    1. Для все БД:

    alter database DBNAME default character set utf8 collate utf8_general_ci


    Для таблицы:

    ALTER TABLE table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;


    Кстати, Разница между utf8_general_ci и utf8_unicode_ci, в том, что utf8_unicode_ci поддерживает expansions, то есть сопоставление одного символа нескольким (например - в Германии ß = ss ). Т.е. применять utf8_unicode_ci нужно например для немецкого или китайского языков. Если на сайте будет только русский или английский, то достаточно utf8_general_ci, которая будет работать гораздо быстрее.
     

Поделиться этой страницей

iHax Community
Рейтинг@Mail.ru Яндекс.Метрика мониторинг сайтов
Форум программного обеспечения/
Загрузка...