Разное

Настройка web сервера: Настройка веб-сервера Apache + PHP + MySQL — Документация docs.cs-cart.ru 4.2.x

06.07.2021

Содержание

☑ Настройка веб-сервера под высокие нагрузки. Надежно и безопасно

Фронтенд
Бэкенд
Серверы кэширования
Сервер баз данных
Дисковая система
Система мониторинга

Когда пользователь посылает запрос в браузере, то он приходит зачастую на 80-й или 443 порт, который открывается с помощью этой части веб-сервера. Раньше в роли фронденда выступал Apache, но уже сейчас на первое место выходит Nginx, разработка российского специалиста И. Сысоева. Задача Nginx заключается в том, чтобы принять клиентские запросы. Он самостоятельно принимает решение каким образом нужно изменить настройки, чтобы изменить контент по желанию клиента. Nginx не может генерировать страницу, но он оперативно и при небольшой нагрузке на систему производить контент статистического характера, а также делать кеширование ответов бекэндов, создавать с ними связи для генерации новой информации, если данные кэшей невозможно задействовать.
Если правильно произвести настройки Nginx, то существенно повысится производительность, защита всей системы для качественной борьбы с DDoS атаками любого вида и сложности.

Если конфигурационные файлы прописать без особых стараний, тогда можно быть уверенным, что ваш highload webserver является обычным сервером.
Основные возможности фронтенда:

  • работает одновременно с тысячами соединений
  • в системе «клиент–контент» является главным звеном, так как от клиента принимает запрос, а потом отдаёт необходимый контент
  • помогает справиться с DDoS атаками
  • самостоятельно решает выбор бэкенда после запроса клиента касательно контента
  • отдаёт статистический контент
  • при запросе может отдать кэшированные ответы бэкенда, а также осуществляет кэширование, если кэш отсутствует
  • отвечает за буферизацию всех ответов бэкенда
  • сжатие информации с помощью gzipом

Эта составная часть веб-сервера является главной в осуществлении вычислений, так как она полностью отвечает за генерирование динамических страниц. Nginx передаёт все запросы на бэкенд, так как самостоятельно не может их обработать. Обычно в роли бэкенда используется Apache, но с него предварительно снимаются все функции для осуществлении отдачи контента статистического характера.


Почему выбирается именно Apache? Он прекрасно работает с сайтами, которые были разработаны ранее. Но если ваш сайт построен на php, то вы можете остановить свой выбор и на другом бэкенде как spawn-fcgi или php-fpm. Если специалист знает как с ними обращаться, то они помогут увеличить производительность. Но если ваш сайт разработан под Apache, то придётся полностью его переделать под другой бэкенд. Поэтому при создании сайта лучше сразу определиться с бэкендом и разработать необходимую связку.
Для одного веб-сайта достаточно использовать один бэкенд, но иногда можно встретить два. В таком случае первый отвечает за генерацию страниц для пользователей, а второй предназначен для использования администратором. Если применять только один бэкенд, тогда настройки ресурсов будут значительно отличаться, поэтому лучшим вариантом станет их распределение. Так, бэкенд для пользователей требует минимальных ресурсов, которые позволят значительно сэкономить и распределить ресурсы для защиты от DDoS и повысить уровень обслуживания клиентов.
Бэкенд для администратора требует намного больше производительности системы.
Характеристики бэкенда:

  • используется для генерирования динамических страниц
  • работает с файлами, которые написаны как на PHP, так и на других языках программирования
  • можно задействовать сразу несколько бэкендов
  • может располагаться на другом веб-сервере, что позволяет создавать сложные решения веб сервера для нагруженных сайтов

Кэш является областью памяти, которая находится между пользователем и источником информации. Обычно кэши доступны получателям, поэтому данных от источника к клиенту имеют мало времени на доставку. Сервер в основном состоит из кэшей. Существует и другое кеширование, которое происходит в областях оперативной памяти и доступ к нему производится с помощью Memcached. К примеру, Nginx применяет Memcached, чтобы сохранять результаты динамической генерации страниц. Программисты могут с его помощью хранить промежуточные данные, которые берут из базы данных. В общем процесс кэширования является важным и сложным, так как он даёт возможность повысить производительность всей системы.

Он относится к самым главным компонентам каждого веб-сервера, так как он отвечает за надёжное хранение большого количества современных сайтов. К примеру, для интернет-магазина в нём будут находиться описания, характеристики, отзывы посетителей и многое другое. Что касается изображений или других элементов дизайна, то их невыгодно там хранить. Сервер базы данных в некоторых аспектах уступает работе бэкенда, но он экономно употребляет оперативную память и производит кэширование запросов. Только специалист сможет произвести хороший тюнинг сервера базы данных, что приведёт к повышению производительности функционирования веб-сервера в целом.

Главные особенность сервера базы данных:

  • сохраняет большую часть всей информации сайта
  • можно повысить производительность сервера благодаря наличию огромного количества настроек
  • расходует много оперативной памяти

Веб-сервер при запуске обязательно обращается к диску.

Поэтому следует разобраться какое количество дисков потребуется, как лучше разбить разделы, какими способами производить оптимизацию файловой системы и т. д.

Это возможность позволяет постоянно следить за работой веб-сервера. Мониторинг позволит быстро справиться со скачками нагрузки, следить за ресурсами. Таким образом, ваша система будет прекрасно функционировать без сбоев.

Установка веб-сервера Apache в Debian 9

Введение

HTTP-сервер Apache — самый широко используемый веб-сервер в мире. Он имеет множество мощных функций, включая динамически загружаемые модули, надежную поддержку различных медиа-форматов и интеграцию с другим популярным программным обеспечением.

В этом обучающем модуле мы расскажем, как установить веб-сервер Apache на сервере Debian 9.

Предварительные требования

Прежде чем начать прохождение настоящего обучающего модуля, необходимо настроить на сервере обычного пользователя без привилегий root и с привилегиями sudo. Также вам потребуется включить базовый брандмауэр, чтобы заблокировать все порты, кроме необходимых. Вы научитесь настраивать учетную запись обычного пользователя и брандмауэр для вашего сервера, следуя указаниям руководства Начальная настройка сервера Debian 9.

Создав учетную запись, войдите в систему как пользователь без привилегий root.

Шаг 1 — Установка Apache

Apache поставляется с используемыми по умолчанию хранилищами программного обеспечения Debian, что позволяет использовать для его установки инструменты управления из стандартных пакетов.

Для начала выгрузим указатель локальных пакетов, чтобы отразить последние изменения на предыдущих уровнях:

Затем установим пакет apache2:

После подтверждения установки apt выполнит установку Apache и всех требуемых зависимостей.

Шаг 2 — Настройка брандмауэра

Прежде чем тестировать Apache, необходимо изменить настройки брандмауэра, чтобы разрешить доступ к веб-портам по умолчанию. Если вы выполнили предварительные указания , у вас должен быть установлен брандмауэр UFW, настроенный для ограничения доступа к вашему серверу.

Во время установки Apache регистрируется в UFW, предоставляя несколько профилей приложений, которые можно использовать для включения или отключения доступа к Apache через брандмауэр.

Выведите список профилей приложений

ufw, введя следующую команду:

Вы увидите список профилей приложений:

Output

Available applications: AIM Bonjour CIFS . . . WWW WWW Cache WWW Full WWW Secure . . .

Профили Apache начинаются с WWW:

  • WWW: этот профиль открывает только порт 80 (обычный веб-трафик без шифрования)
  • WWW Cache: этот профиль открывает только порт 8080 (иногда используется для кэширования и веб-прокси)
  • WWW Full: этот профиль открывает порт 80 (обычный веб-трафик без шифрования) и порт 443 (трафик TLS/SSL с шифрованием)
  • WWW Secure: этот профиль открывает только порт 443 (трафик с шифрованием TLS/SSL)

Рекомендуется применять самый ограничивающий профиль, который будет разрешать заданный трафик.

Поскольку в этом модуле мы еще не настроили SSL для нашего сервера, нам нужно будет только разрешить трафик на порту 80.

Для проверки изменений введите:

В результатах вы должны увидеть, что трафик HTTP разрешен:

Output

Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere WWW ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) WWW (v6) ALLOW Anywhere (v6)

Как видите, профиль был активирован для разрешения доступа к веб-серверу.

Шаг 3 — Проверка веб-сервера

В конце процесса установки Debian 9 запускает Apache. Веб-сервер уже должен быть запущен и работать.

Используйте команду

systemd init system, чтобы проверить работу службы:

  • sudo systemctl status apache2

Output

● apache2. service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2018-09-05 19:21:48 UTC; 13min ago Main PID: 12849 (apache2) CGroup: /system.slice/apache2.service ├─12849 /usr/sbin/apache2 -k start ├─12850 /usr/sbin/apache2 -k start └─12852 /usr/sbin/apache2 -k start Sep 05 19:21:48 apache systemd[1]: Starting The Apache HTTP Server... Sep 05 19:21:48 apache systemd[1]: Started The Apache HTTP Server.

Как видно из результатов, служба успешно запущена. Однако лучше всего протестировать ее запуск посредством запроса страницы из Apache.

Откройте страницу Apache по умолчанию, чтобы подтвердить работу программного обеспечения через ваш IP-адрес: Если вы не знаете IP-адрес вашего сервера, есть несколько способов узнать его с помощью командной строки.

Попробуйте ввести в командной строке сервера следующую команду:

Вы получите несколько адресов, разделенных пробелами. Вы можете попробовать каждый из них в браузере, чтобы убедиться в их работоспособности.

Альтернатива заключается в использовании инструмента curl, который должен предоставить вам публичный IP-адрес, отображаемый в других местах в интернете.

Вначале выполните установку curl с помощью apt:

Затем используйте curl для получения icanhazip.com с помощью IPv4:

Когда вы узнаете IP-адрес вашего сервера, введите его в адресную строку браузера:

http://your_server_ip

Вы увидите веб-страницу Debian 9 Apache по умолчанию:

Эта страница показывает, что Apache работает корректно. Также на ней содержится информация о важных файлах Apache и расположении каталогов.

Шаг 4 — Управление процессом Apache

Теперь ваш веб-сервер запущен и работает, и настало время изучить некоторые простые команды управления.

Чтобы остановить веб-сервер, введите:

  • sudo systemctl stop apache2

Чтобы запустить остановленный веб-сервер, введите:

  • sudo systemctl start apache2

Чтобы остановить и снова запустить службу, введите:

  • sudo systemctl restart apache2

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

  • sudo systemctl reload apache2

По умолчанию Apache настроен на автоматический запуск при загрузке сервера. Если вы не хотите этого, отключите такое поведение с помощью следующей команды:

  • sudo systemctl disable apache2

Чтобы перезагрузить службу для запуска во время загрузки, введите:

  • sudo systemctl enable apache2

Теперь Apache должен запуститься автоматически при следующей загрузке сервера.

Шаг 5 — Настройка виртуальных хостов (рекомендуется)

При использовании веб-сервера Apache вы можете использовать виртуальные хосты (аналогичные серверным блокам в Nginx) для инкапсуляции данных конфигурации и размещения на одном сервере нескольких доменов. Мы создадим домен example.com, но вы должны заменить это имя собственным доменным именем. Чтобы узнать больше о настройке доменного имени с помощью DigitalOcean, пройдите наш обучающий модуль Введение в DigitalOcean DNS.

В Apache в Debian 9 по умолчанию включен один серверный блок, настроенный на обслуживание документов из каталога /var/www/html. Хотя это хорошо работает для отдельного сайта, при хостинге нескольких сайтов это неудобно. Вместо изменения /var/www/html мы создадим в /var/www структуру каталогов для нашего сайта example.com, оставив /var/www/html как каталог по умолчанию для вывода в случае, если запросу клиента не соответствуют никакие другие сайты.

Создайте каталог для example.com следующим образом, используя опцию -p для создания необходимых родительских каталогов:

sudo mkdir -p /var/www/example.com/html

Затем назначьте владение каталогом с помощью переменной среды $USER:

  • sudo chown -R $USER:$USER /var/www/example. com/html

Разрешения корневых каталогов веб-сервера должны быть правильными, если вы не изменяли значение unmask. Тем не менее, вы можете проверить это с помощью следующей команды:

  • sudo chmod -R 755 /var/www/example.com

Затем создайте в качестве примера страницу index.html, используя nano или свой любимый редактор:

  • nano /var/www/example.com/html/index.html

Добавьте в страницу следующий образец кода HTML:

/var/www/example.com/html/index.html

<html>
    <head>
        <title>Welcome to Example.com!</title>
    </head>
    <body>
        <h2>Success!  The example.com virtual host is working!</h2>
    </body>
</html>

Сохраните файл и закройте его после завершения.

Для обслуживания этого контента Apache необходимо создать файл виртуального хоста с правильными директивами. Вместо изменения файла конфигурации по умолчанию /etc/apache2/sites-available/000-default.conf мы создадим новый файл /etc/apache2/sites-available/example.com.conf:

  • sudo nano /etc/apache2/sites-available/example.com.conf

Введите следующий блок конфигурации, который похож на заданный по умолчанию, но обновлен с учетом нового каталога и доменного имени:

/etc/apache2/sites-available/example.com.conf

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Обратите внимание, что мы изменили DocumentRoot на новый каталог, а ServerAdmin — на адрес электронной почты, доступный администратору сайта example.com. Также мы добавили две директивы: директиву ServerName, которая устанавливает базовый домен и должна соответствовать определению виртуального хоста, и директиву ServerAlias, которая задает дополнительные имена, которые должны давать совпадение, как если бы они были базовыми именами.

Сохраните файл и закройте его после завершения.

Активируем файл с помощью инструмента a2ensite:

  • sudo a2ensite example.com.conf

Отключите сайт по умолчанию, определеный в 000-default.conf:

  • sudo a2dissite 000-default.conf

Затем проверим ошибки конфигурации:

  • sudo apache2ctl configtest

Вы должны увидеть следующий результат:

Output

Syntax OK

Перезапустие Apache для внесения изменений:

  • sudo systemctl restart apache2

Теперь Apache должен обслуживать ваше доменное имя. Вы можете проверить это, открыв в браузере адрес http://example.com, после чего должны увидеть примерно следующее:

Шаг 6 — Знакомство с важными файлами и каталогами Apache

Теперь вы научились управлять службой Apache, и настало время познакомиться с несколькими важными каталогами и файлами.

Контент

  • /var/www/html: веб-контент, в состав которого по умолчанию входит только показанная ранее страница Apache по умолчанию, выводится из каталога /var/www/html. Это можно изменить путем изменения файлов конфигурации Apache.

Конфигурация сервера

  • /etc/apache2: каталог конфигурации Apache. Здесь хранятся все файлы конфигурации Apache.
  • /etc/apache2/apache2conf: главный файл конфигурации Apache. Его можно изменить для внесения изменений в глобальную конфигурацию Apache. Этот файл отвечает за загрузку многих других файлов в каталоге конфигурации.
  • /etc/apache2/ports.conf: этот файл задает порты, которые будет прослушивать Apache. По умолчанию Apache прослушивает порта 80, а если активирован модуль с функциями SSL, он также прослушивает порт 443.
  • /etc/apache2/sites-available/: каталог, где можно хранить виртуальные хосты для каждого сайта. Apache не будет использовать файлы конфигурации из этого каталога, если они не будут связаны с каталогом sites-enabled. Обычно все изменения конфигурации серверных блоков выполняются в этом каталоге, а затем активируются посредством ссылки на другой каталог с помощью команды a2ensite.
  • /etc/apache2/sites-enabled/: каталог, где хранятся активные виртуальные хосты для каждого сайта. Обычно они создаются посредством создания ссылок на файлы конфигурации из каталога sites-available с помощью команды a2ensite. Apache считывает файлы конфигурации и ссылки из этого каталога при запуске или перезагрузке, когда компилируется полная конфигурация.
  • /etc/apache2/conf-available/, /etc/apache2/conf-enabled/: эти каталоги имеют те же отношения, что и каталоги sites-available и sites-enabled, но используются для хранения фрагментов конфигурации, которые не принадлежат виртуальному хосту. Файлы из каталога conf-available можно активировать с помощью команды a2enconf и отключить с помощью команды a2disconf.
  • /etc/apache2/mods-available/, /etc/apache2/mods-enabled/: эти каталоги содержат доступны и активированные модули соответственно. Файлы с расширением .load содержат фрагменты для загрузки определенных модулей, а файлы с расширением .conf содержат конфигурации этих модулей. Модули можно активировать и отключать с помощью команд a2enmod и a2dismod.

Журналы сервера

  • /var/log/apache2/access.log: по умолчанию каждый запрос веб-сервера регистрируется в этом файле журналда, если Apache не настроен по другому.
  • /var/log/apache2/error.log: по умолчанию все ошибки регистрируются в этом файле. Директива LogLevel в конфигурации Apache указывает, насколько детальные записи регистрируются в журналах ошибок.

Заключение

Теперь вы установили веб-сервер и у вас есть богатые возможности выбора типа обслуживаемого контента и технологий для расширения возможностей пользователя.

Если вы хотите развернуть более полный комплекс приложений, ознакомьтесь с этой статьей Настройка набора LAMP в Debian 9.

Публикация и настройка 1с 8.3 на веб сервере Apache

Как известно, с выходом конфигураций 1С 8.3, написанных полностью на управляемых формах, появилась возможность публикации этих конфигураций на веб-сервере.

Рассмотрим пример, как это настроить и опубликовать веб-сервер для работы в 1С 8.3. Использовать будем бесплатный сервер Apache. Для рассмотрения примера публиковать будем локально, на нашем компьютере.

Публикация 1С 8.3 на веб-сервере IIS отличается лишь установкой серверной части.

Установка веб-сервера Apache

Сначала нужно скачать дистрибутив сервера. Находится он по адресу http://www.apache. org. Скачиваем последнюю версию дистрибутива для Windows и запускаем установку.

Нажимаем «Next» до тех пор, пока не появится вот такое окно:

В первые два поля впишем «localhost» (или 127.0.0.1). Это означает, что сервер будет работать на локальном компьютере. В третьем поле укажите почтовый адрес, на него будут приходить ответы сервера.

Порт лучше оставить тот, который рекомендуется (если он не занят другим приложением), а именно 80. Должно получиться примерно такое окно:

Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания — попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>

Получите 267 видеоуроков по 1С бесплатно:

Следует заметить, что программа Skype тоже может использовать 80 порт. Поэтому, если Вы ее используете, отключите в настройках 80 порт.

Нажимаем «Next».

В следующем окне я предлагаю выбрать типовую установку. При этом будут установлены все необходимые для работы компоненты.

Каталог установки тоже оставим по умолчанию. Нажимаем «Install». Начнется процесс установки.

После окончания установки сервер должен автоматически запуститься. При этом в системном трее появится значок . Это означает, что сервер успешно запустился. Если кликнуть два раза на этой иконке, откроется следующее окно:

Публикация веб-клиента и веб-сервисов в 1С 8.3 (8.2) на сервере Apache

Сервер запущен. Теперь займемся программой 1С. Запустим Конфигуратор.

В Конфигураторе выбираем меню «Администрирование», далее «Публикация на веб-сервере».

Настройки здесь требуются минимальные. В основном все должно определиться по умолчанию.

Нужно только выбрать каталог, можно любой пустой. «Имя» нужно указать латинскими символами.

Web-сервисы можно выбирать по желанию. Можно отключить совсем. Главное, перейти на закладку HTTP-сервисы. Тут нужно сделать те же настройки, что и на предыдущей закладке:

После всего проделанного нажимаем кнопку «Опубликовать». 1С предложит нам перезапустить веб-сервер. Соглашаемся. После перезапуска запускаем браузер и проверяем нашу публикацию.

Набираем в браузере «localhost/Demo». Появится окно выбора пользователя и в дальнейшем сама программа 1С:

Таким образом, можно опубликовать программу 1С практически на любом ресурсе.

Рекомендуем к просмотру видеоинструкцию по установке веб-сервера в связке с 1С:

Если Вы начинаете изучать 1С программирование, рекомендуем наш курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):