1с веб серверы не обнаружены apache 2.4. Алексей алексеев добро пожаловать в мой уютненький бложек

Установка Apache

Веб-сервер Apache является свободно распространяемым программным обеспечением (тем не менее обладающим своей лицензий, которую необходимо соблюдать) и может быть свободно скачен с официального сайта https://httpd.apache.org . Вы можете скачать любую версию, не ниже 2.2.16. Перед скачиванием выберите операционную систему вашего сервера (Unix или Windows). Каталог с различными версиями Apache:
https://archive.apache.org/dist/httpd/binaries/win32/

Разработчики конфигураций «1С» для разработки и тестирования своих конфигураций в веб-режиме также могут установить Apache на свой локальный компьютер, допускается запуск Apache на Windows 7 и Windows XP, при установке на локальный компьютер разработчика можно выбрать установку для одного пользователя (текущего пользователя), в таком случае доступ к веб-серверу будет осуществляться не по стандартному порту 80, а через порт 8080.

Процедура установки Apache достаточно проста. После скачивания небольшого дистрибутива (5.2 MB) в формате MSI (обычно файл имеет название типа » httpd-2.2.16-win32-x86-no_ssl.msi») веб-сервера распакуйте дистрибутив и запустите файл «setup.exe».

Начиная с версии платформы 1С 8.3, появилась возможность опубликовывать информационные базы на веб-серверах. Данное решение очень удобно, ведь перейдя по ссылке в браузере, вы сможете полноценно работать в 1С. Обратите внимание, что работа возможно только в режиме «Предприятие» Использовать конфигуратор можно только на толстом клиенте.

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

В данной статье мы пошагово рассмотрим публикацию информационной базы 1C 8.3 на веб-сервере с использованием Apache. Описанные ниже настройки, которые мы будем производить в самой 1С, ничем не отличаются от публикации на веб-сервере IIS.

Единственное отличие — сервер под управлением IIS более «привередливый» к настройкам, поэтому чаще всего выбор падает именно на Apache.

Установка и настройка Apache 2.4

Первым делом нужно скачать сам Apache, например, с официального сайта . Актуальная на данный момент версия 2.4. В процессе установки нет ничего сложного, достаточно следовать помощнику.

Когда при установке перед вами отобразится окно с информацией о сервере, введите в первых двух полях «localhost». Это будет означать, что наш компьютер и будет являться сервером, на котором расположена 1С.

Так же обратите внимание, что у нас будет использоваться порт 80 (переключатель внизу формы). Важно, чтобы он не был занят другими приложениями.

После успешной установки программы в трее появится специальный значок Apache. С его помощью можно как запустить, так и остановить работу веб-сервера.

Публикация информационной базы 1С 8.3

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

Выберите в меню «Администрирование» пункт «Публикация на веб-сервере». В открывшемся окне мы оставим все настройки по умолчанию, изменив лишь малую их часть.

В качестве веб-сервера выберем Apache 2.2, который установили ранее. В качестве имени можно указать произвольное значение. Мы публикуем 1С:Документооборот, поэтому назовем ее просто «doc». В поле каталог выберем так же созданную нами пустую папку, которая может быть расположена в любом месте.

После внесения всех необходимых данных, нажмем на кнопку «Опубликовать» и перезапустим веб-сервер Apache.

Теперь в адресной строке браузера введем «localhost/doc». Перед нами появилось окно авторизации в 1С.

После введения логина с паролем и аутентификации, перед нами откроется привычная нам 1С.

1. Скачать веб-сервер APACHE

там выбрать Binaries – папка Win32 - файл httpd-2.2.25-win32-x86-no_ssl.msi – если установка происходит по Windows) и установить.

Настраивать и переписывать файлы APACHE не нужно (везде нажимать "Далее"). После установки он сам появится и запустится в системных значках. В следующем окне вверху можно вписать любую информацию, на работоспособность это не влияет.

2. После установки проверить работоспособность web-сервера. При переходе в браузере по адресу http: //localhost должно отображаться следующее окно:

3. Если при установке платформы 1С не были установлены компоненты работы с веб-сервером, их надо установить (через установку платформы):

4. Далее зайти в "Конфигуратор"-"Администрирование"-"Публикация на веб-сервере...". Необходимо английскими буквами указать имя базы в поле "Имя". Выбрать пустой каталог (путь к нему не должен содержать русских символов, см. пример ниже).

Установить флаг "Публиковать Web-сервисы", в списке веб-сервисов установить флажок у нужного сервиса.

После выполнения этих действий проверить доступность веб-сервиса 1С можно, введя в браузере:

ip-компьютера/ИмяБазы/ws/Алиас указанный при публикации.1cws?wsdl. При этом должно открыться XML описание свойств и методов веб-сервиса(а не страница ошибки)

В соответствии с картинкой адрес будет выглядеть следующим образом:

Пошаговая инструкция настройки web-сервисов для 1Сv8 и IIS

1. Установка IIS выполняется стандартными средствами. Необходимо установить следующие компоненты:

Web Management Tools:

IIS 6 Scripting Tools

IIS 6 WMI Compatibility

IIS Metabase and IIS configuration compatibility

IIS Management Console

IIS Management Scripts and Tools

World Wide Web Services:

ISAPI Extensions

Default Document

Directory Browsing

Static Content Compression

Request Filtering

Набор достаточных компонент приведен на скриншоте ниже.


2. Если при установке платформы 1С не были установлены компоненты работы с веб-сервером, их надо установить (через установку платформы):

Далее зайти в "Конфигуратор"-"Администрирование"-"Публикация на веб-сервере...". Необходимо английскими буквами указать имя базы в поле "Имя". Выбрать пустой каталог (путь к нему не должен содержать русских символов, см. пример ниже). Установить галку "Публиковать Web-сервисы", в списке веб-сервисов установить флажок у сервиса "rg1CTCService". Нажать "Опубликовать".

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

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

3. Указать права для обработчика web-сервисов 1С. Права на запуск (Execute) модулей добавляются для группы IIS_IUSRS на папку...1cv81\BIN\

4. Если база файловая, нужно добавить права на изменение (Modify) на папку и подпапки базы для той же группы.

5. В консоли IIS. Кликаем правой кнопкой мыши на строку с созданной нами папкой. Преобразовываем её в приложение.


6. Добавить настройки для обработки файлов 1С. На вкладке Handler Mappings добавить скрипты (не скрипты со звездочкой) для расширения -"*.1cws".

Имя любое.

Request Restrictions -> Access -> Script или Execute.

7. Для обработчиков нужно указать дополнительные параметры (Edit Feature Permission). Установить флаги запуска скриптов и приложений.

8. Проверить наличие обработчика web-сервисов 1С на вкладке ISAPI and CGI Restrictions для сервера.

Если установка идет в 64 разрядном окружении, то для обработчика нужно включить режим Alpplication Pool -> DefaultAppPool -> Enable 32-bit Application -> True.

9.. Для проверки правильности выполнения обратиться по адресу IP-компьютера/ИмяБазы/ws/Алиас_указанный_при_публикации.1cws?wsdl.

При этом должно открыться XML описание свойств и методов веб-сервиса(а не страница ошибки)

В соответствии со скриншотом пункта 2 адрес будет выглядеть следующим образом: http: //ip/IB/ws/WSName.1cws?wsdl

Недавно я настраивал веб-сервер Apache в связке с 1С. Причём веб-сервер находился на отдельном Linux хосте внутри Docker контейнера. Поделюсь своим опытом и дам пошаговую инструкцию.

Эта статья написана в апреле 2018 года и проверена на версии платформы 1С 8.3.11.3034. Далее рассматриваю подключение к информационной базе 1С в серверном варианте, не в файловом.

Почему именно Apache, именно под Linux и именно в Docker? Оставлю этот вопрос за рамками данной статьи.

Про Apache и про Linux слышали, наверное, все. А вот про Docker, который сильно набирает популярность последнее время, поделюсь кратким руководством на русском для общего понимания: http://guides.hexlet.io/docker/

Взаимодействие Apache и сервера 1С

В двух словах напомню схему взаимодействия веб-сервера Apache и сервера 1С, которая отлично описана в документации к 1С и миллионе статей, аналогичных этой.

Мы устанавливаем веб-сервер Apache и добавляем в его настройки (в файл httpd.conf ) специальный модуль wsap24.so . Этот модуль разработан компанией 1С и он доступен в дистрибутиве сервера 1С под Linux.

Далее всё в том же httpd.conf мы даём указания веб-серверу, что все запросы начинающиеся с определённого пути (например /BuhBase) нужно обрабатывать с помощью специального обработчика 1c-application , реализованного в модуле wsap24.so.

Соответственно, когда на веб-сервер Apache приходит входящий HTTP запрос удовлетворяющий заданному пути, например, http:///BuhBase/, в дело вступает обработчик 1c-application . Оно в свою очередь заглядывает в некий файл.vrd, внутри должны быть настройки подключения к 1С.

Обычно vrd файл генерируется в процессе выполнения процедуры «публикации на веб сервере» из конфигуратора или с помощью консольной утилиты webinst . В данном случае конфигуратор нам не поможет, ведь мы планируем запускать веб-сервер Apache совсем на другом хосте, нежели сервер 1С, да ещё и внутри Docker контейнера. Консольную утилиту webinst тоже трогать не будем, опишем файл default.vrd вручную, благо там нужно всего несколько строк в минимальном варианте, нет смысла заморачиваться с запуском чего-бы то ни было дополнительного.

Итак, если default.vrd файл есть и в нём присутствуют верные настройки подключения к серверу 1С, то модуль запущенный внутри Apache подключается по TCP к серверу 1С.

При этом сам сервер 1С может находиться совсем на другой машине и на другой операционной системе. Это не важно, главное чтобы Apache смог достучаться до сервера 1С по TCP.

Соберём всю конфигурацию по шагам

Шаг 1.

Устанавливаем Docker на локальную машину разработчика (для удобства проверки и отладки) и на целевую Linux машину, где мы собственно и хотим запустить веб-сервер.

Docker работает и на Linux, и на macOS и на Windows. Скорее всего, на машине разработчика (на вашей машине) стоит Windows. Я лично не проверял описанные ниже шаги под Windows, теоретически всё должно сработать, но что-то пойдёт не так, можно не тратить силы и нервы и сделать всё непосредственно на Linux сервере или в локальной виртуальной машине (например, с помощью VirtualBox).

При установке на Linux не забудем про этот важный шаг, который описан на отдельной странице в документации: https://docs.docker.com/install/linux/linux-postinstall/

Шаг 2.

Создадим директорию для нашего проекта и скачаем в неё дистрибутив 1С Сервер для Linux: https://releases.1c.ru -> Технологическая платформа 8.3 -> Cервер 1С:Предприятия (64-bit) для DEB-based Linux-систем

Получим файл deb64.tar.gz , оставляем его пока как есть.

Шаг 3.

Создадим файл с настройками подключения к 1С: default.vrd

Я привожу пример минимального vrd файла в котором по умолчанию опубликованы все веб-сервисы, все http сервисы и стандартный REST интерфейс (OData).

Обратите внимание на строку подключения, замените имя сервера 1С (Serv1C) и имя информационной базы (BuhBase) на свои.

Если вы ранее уже публиковали свою базу на веб-сервере (не важно на каком: IIS или Apache, Windows или Linux, с помощью конфигуратор или с помощью webinst), у вас точно должен быть.vrd файл, поищите в публичных директориях веб-сервера и используйте его.

Шаг 4.

Возьмём стандартный конфиг от Apache (httpd.conf) и добавим к нему несколько строк в конец (полный пример: https://github.com/pqr/docker-apache-1c-example/blob/master/httpd.conf)

LoadModule _1cws_module /opt/1C/v8.3/x86_64/wsap24.so # 1c publication Alias "/BuhBase" "/usr/local/apache2/htdocs/BuhBase/" AllowOverride All Options None Require all granted SetHandler 1c-application ManagedApplicationDescriptor "/usr/local/apache2/htdocs/BuhBase/default.vrd"

Таким образом мы указываем веб-северу, что запросы по пути /BuhBase нужно обслуживать с помощью обработчика (SetHandler) 1c-application .

Тут же указывается и путь к default.vrd . На данном этапе всех этих путей пока нет (и не будет, они будут внутри Docker контейнера).

Шаг 4.

Создадим файл с именем Dockerfile (без расширения) со следующим содержанием:

FROM httpd:2.4 # Данный образ базируется на стандартном образе Debian+Apache 2.4: https://store.docker.com/images/httpd # Копируем дистрибутив в директорию dist COPY deb64.tar.gz /dist/deb64.tar.gz # Разархивируем дистрибутив RUN tar -xzf /dist/deb64.tar.gz -C /dist \ # и устанавливаем пакеты 1С в систему внутри контейнера && dpkg -i /dist/*.deb \ # и тут же удаляем исходные deb файлы дистрибутива, которые нам уже не нужны && rm /dist/*.deb # Копируем внутрь контейнера заранее подготовленный конфиг от Apache COPY httpd.conf /usr/local/apache2/conf/httpd.conf # Копируем внутрь контейнера заранее подготовленный конфиг с настройками подключения к серверу 1С COPY default.vrd /usr/local/apache2/htdocs/BuhBase/default.vrd

Шаг 5.

Собираем образ командой:

Docker build -t my-apache-1c .

Опция -t my-apache-1c присваивает собранному образу имя, чтобы в дальнейшем его было удобнее запуcкать. Если не указать -t , то запускать придётся по сгенерированному уникальному ID образа, что не очень удобно.

Шаг 6.

Запускаем контейнер из только что созданного образа командой:

Docker run --add-host Serv1C:192.168.1.15 --publish 80:80 my-apache-1c

Разберём эту строку по частям:

--add-host Serv1C:192.168.1.15 - здесь мы явно указали докеру, что за именем сервера Serv1C скрывается IP адрес 192.168.1.15 (подставьте свои значения). Имя сервера Serv1C мы использовали выше в default.vrd. Этот эквивалентно тому, как если бы мы прописали эту связь в знаменитый hosts файл. Но внутри контейнера нельзя поправить hosts файл, нужно действовать через параметр командной строки --add-host.

А почему бы сразу не указать IP адрес в default.vrd? Я пробовал, но при проверке в браузере платформа 1С выдавала ошибку и, честно говоря, я не разобрался в проблеме. При подключении по имени хоста (Serv1C) проблем не было.

--publish 80:80 - сообщаем докеру, запросы к хост-машине на порт 80 нужно перенаправлять в контейнер на порт 80 (внутри контейнера слушает Apache). Иногда на хост-машине порт 80 может быть уже занят, например, на этом же Linux сервере запущен какой-то сайт или на машине разработчика стоит локальный веб-сервер, тогда делаем так: --publish <любой свободный порт на хост-машине>:80 ,например: --publish 8000:80

Последним параметром идёт имя образа (my-apache-1c) на основе которого запускать контейнер. Образ с таким именем мы уже создали на предыдущем шаге.

После запуска этой команды в окне терминала появятся логи процесса Apache. Терминал не закрываем. Если закрыть, контейнер будет остановлен.

Шаг 7.

Проверяем.

Сначала проверяем Apache в целом: http://localhost - должны увидеть сообщение «It Works!»

Почему localhost? Мы сейчас находимся на своей собственной машине (на компьютере разработчика) где запустили Docker контейнер, соответственно для нас он запущен локально.

Если все эксперименты проводятся сразу на Linux сервере, то пробовать нужно, соответственно, по адресу Linux сервера, например, http://192.168.1.10 или http://linux-host

Если при запуске контейнера был указан какой-то особый порт для хост-машины, то проверять нужно на нём, например, http://localhost:8000

Проверим стандартный REST интерфейс (OData): http://localhost/BuhBase/odata/standard.odata/

Попробуем какой-нибудь веб-сервис (если в конфигурации такие есть): http://localhost/BuhBase/ws/MyWebService?wsdl

Всё должно отработать!

Теперь можно останавливать контейнер: Ctrl+C

Шаг 8.

Мы только что развернули Apache с модулем 1С в Docker контейнере на локальной машине (на машине разработчика). На деле это всё должно крутиться где-то на специально отведённом Linux сервере в виде демона.

Удобнее всего запускать контейнер на сервере с помощью утилиты docker-compose . Но для начала протестируем этот docker-compose опять же на локальной машине.

Всё в той же директории проекта (где у нас уже есть Dockerfile, httpd.conf, и др.) создаём файл docker-compose.yml :

Version: "3.4" services: apache-1c: build: . restart: always ports: - 80:80 extra_hosts: - "Serv1C:192.168.1.15"

По сути здесь всё те же параметры, которые мы передавали в команду docker run.

Отличий три:

  1. Мы больше не придумываем и не указываем имя для нашего образа типа (my-apache-1c), вместо этого используем параметр build: . , т.е. docker-compose будет собирать образ на основе текущей директории (помните про контекст?) и тут же запускать контейнер на основе собранного образа
  2. restart: always - если по каким-то причинам Apache упадёт или весь сервер перезагрузится, то Docker автоматически перезапустит контейнер
  3. extra_hosts - это тоже самое, что и --add-host в параметрах команды docker run. Да, есть некая неконсистентность.

И запускаем контейнер с помощью новой для нас команды:

Docker-compose up -d

Контейнер должен запуститься и уйти в фоновый режим (флаг -d ). Проверяем все адреса в браузере как на предыдущем шаге.

Останавливаем контейнер (эту команду нужно выполнять в терминале, находясь в директории проекта):

Docker-compose down

Шаг 9.

docker system prune

Шаг 10.

Важная часть любого проекта - это документация! Обязательно напишем README.md , например, такой: https://github.com/pqr/docker-apache-1c-example/blob/master/README.md

Поместим все файлы, кроме deb64.tar.gz, под систему контроля версий git , отправим в корпоративный репозиторий, чтобы не потерялось.

Шаг 11.

Копируем получившуюся директорию проекта на Linux сервер, заходим туда по ssh и, находясь в целевой директории, выполняем команду docker-compose up -d , проверяем в браузере.

Всё готово и работает на Linux сервере!

Что с обновлениями платформы 1С?

Качаем новый дистрибутив deb64.tar.gz в директорию проекта.

Если был переход с версии 8.3 на версию 8.4, то внутри httpd.conf нужно поправить путь к wsap24.so.

А если несколько информационных баз?

Вариант А.

Значит нам понадобится подготовить несколько.vrd файлов, добавить инструкции по их копированию в Dockerfile и описать пути для веб-сервера в httpd.conf: на каждую базу свой путь, своя директория, свой.vrd файл.

Закидываем изменённый Dockerfile, httpd.conf и новые vrd файлы на сервер, останавливаем контейнер и запускаем заново с флагом --build:

Docker-compose down && docker-compose up -d --build

Вариант Б.

На каждую информационную базу можно поднять свой отдельный контейнер. Это значит что директорию проекта нужно будет размножить по числу баз, внутри каждой сделать свои настройки в.vrd файле. Но при таком подходе не получится все контейнеры запустить одновременно на одному порту, придётся в каждом docker-compose.yml прописать свои порты, например, 8001:80 для первой базы, 8002:80 для второй базы и т.д.

У этого подхода, кстати, есть другое полезное свойство - внутри этих контейнеров могут быть различные версии модуля 1С (это нужно если у вас и серверов 1С несколько с разными версиями платформы).

Нужно поменять настройки подключения к 1С серверу в default.vrd?

Меняем.vrd, и перезапускаем Docker контейнер с пересборкой образа: docker-compose down && docker-compose up -d --build

Что осталось за кадром?

  • В этой статье не описано как быть с файловыми базами. Черновой пример настроек привёл в комментариях под статьёй, но на деле его не проверял.
  • После переноса файлов проекта с локальной машины на сервер всё может не заработать. Например, на сервере может быть закрыт порт 80 - надо проверять правила firewall, iptables и т.п. Могут быть и другие причины - как это всё отлаживать и куда смотреть (где логи?) остаётся за рамками статьи
  • Если этот веб-сервер должен смотреть в интернет то нам обязательно нужен SSL сертификат для https соединения. Про то как настраивать https в Apache написано много статей. При использовании Apache внутри Docker по большому счёту всё настраивается точно также. Либо можно поставить reverse proxy с терминацией SSL, например, Træfik или Nginx. Вот этот Docker образ ещё и сертификаты от Let"s Encrypt автоматически установит: https://hub.docker.com/r/umputun/nginx-le/
  • В качестве базового образа мы использовали официальный httpd на базе Debian. Можно попробовать поиграться с более лёгким образом на базе Alpine.

Исходный код

Все файлы конфигурации описанные в этой статье можно найти в git репозитории: https://github.com/pqr/docker-apache-1c-example/ - принимаются Pull Requests.

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

Максимально снизить системные требования к пользовательским машинам и по полной использовать возможности, реализованные в можно выполнив публикацию 1С на веб-сервере. Это позволит организовать работу с базой не только используя тонкий клиент, но и при помощи любого браузера, без установки дополнительных компонентов и приложений.

Основные требования

Минимальные системные требования к серверной части архитектуры могут значительно различаться и сильно зависят от:

  1. Задач, решаемых программой;
  2. Интенсивности документооборота;
  3. Количества единовременно подключенных пользователей;
  4. Размера и количества опубликованных и прописанных баз данных.

Однако без двух вещей при публикации 1С на веб-сервере обойтись просто невозможно:

  • Развернутого в системе веб-сервера;
  • Установленного и запущенного модуля расширения, поставляемого фирмой 1С.

Веб-сервер

В качестве этого элемента нашей структуры может выступать как Internet Information Server (IIS), поставляемый в составе операционных систем от фирмы Microsoft, так и Apache сервер. Конечно, есть и платные аналоги этих решений, но про них мы разговор вести не будем.

Дополнительным плюсом продуктов Apache является возможность их запуска из Linux подобных операционных систем.

Мы рассмотрим вариант с IIS, т.к. он не требует поисков и установки продуктов сторонних производителей.

Модули расширения веб-сервера

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

Естественно, помимо расширений на компьютере должна быть инсталлирована и сама платформа 1С Предприятие, в противном случае у нас не будет доступа к Конфигуратору, через который выполняется основная часть публикации.

Определившись с инструментарием, перейдем к настройке.

Установка и запуск Web-сервера

Для того, чтобы запустить IIS на компьютере с установленной Windows, необходимо произвести следующую последовательность действий (на примере Windows 7):


Рис.3

Удостовериться в том, что веб-сервер заработал, можно забив в адресной строке любого браузера строку вида «http://localhost» и получив картинку, как на Рис.4.

Рис.4


Рис.6.

В некоторых случаях (в частности, если работа программы осуществляется в среде 64 разрядной операционной система), после публикации базы на сервере, возможно придется донастраивать работы с библиотеками, используемыми платформой 1С. Это можно выполнить из подменю «Сайты».

Выбрав конкретную, только что опубликованную базу в списке, необходимо активировать утилиту «Сопоставление обработчиков» (Рис.7).
Рис.7

В нашем случае нам понадобится установить соответствие между ISAPI-dll и исполняемым файлом wsisapi.dll, находящимся в папке BIN, установленной версии платформы.

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

Публикация базы на сервер

Настройка прав пользователей

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

Нам необходимо разрешить полный доступ пользователю IIS_USERS:

  • К папке «C:\inetpub\wwwroot\Имя публикации», где хранится ресурс;
  • К папке с используемой версией программы, где хранится библиотека wsisapi.dll;
  • К месту, где хранится база.

Выполнив вышеперечисленные действия, мы можем проверить работоспособность нашей публикации, забив в окне браузера строку вида «localhoct/Имя публикации» и обнаружив там форму идентификации пользователя.

КАТЕГОРИИ

ПОПУЛЯРНЫЕ СТАТЬИ

© 2024 «nkld.ru» — Windows. Железо. Интернет. Безопасность. Операционные системы. Ноутбуки