Большую часть своей веб-карьеры я работал исключительно на стороне клиента. Проектирование адаптивных макетов, создание визуализаций из больших объемов данных, создание инструментальных панелей приложений и т. Д. Но мне никогда не приходилось иметь дело с маршрутизацией или HTTP-запросами напрямую. До не давнего времени.
Этот пост представляет собой описание того, как я узнал больше о веб-разработке на стороне сервера с помощью Node.js, и краткое сравнение написания простого HTTP-сервера с использованием 3 разных сред, Express, Koa.js и Hapi.js.
Примечание: если вы опытный разработчик Node.js, вы, вероятно, подумаете о том, что это все элементарно/просто. ¯_(ツ)_/¯.
Некоторые основы сети
Когда я начал работать в веб-индустрии пару лет назад, я наткнулся на курс по компьютерным сетям профессора Дэвида Ветерала на Coursera. К сожалению, он больше не доступен, но лекции по-прежнему доступны на веб-сайте Pearson.
Мне очень понравился этот курс, потому что он объяснял, что происходило под капотом, в понятной форме, поэтому, если вы можете взять в руки учебник «Компьютерные сети», прочитайте все подробности о чудесах сети.
Здесь, однако, я собираюсь лишь кратко рассказать о контексте. HTTP (Hypertext Transfer Protocol) — это протокол связи, используемый в компьютерных сетях. В Интернете их много, таких как SMTP (простой протокол передачи почты), FTP (протокол передачи файлов), POP3 (протокол почтового отделения 3) и так далее.
Эти протоколы позволяют устройствам с совершенно разным аппаратным / программным обеспечением связываться друг с другом, поскольку они предоставляют четко определенные форматы сообщений, правила, синтаксис и семантику и т.д. Это означает, что, пока устройство поддерживает определенный протокол, оно может связываться с любым другим устройством. в сети.
От TCP / IP против OSI: в чем разница между двумя моделями?
Операционные системы обычно поставляются с поддержкой сетевых протоколов, таких как HTTP, из коробки, что объясняет, почему нам не нужно явно устанавливать какое-либо дополнительное программное обеспечение для доступа в Интернет. Большинство сетевых протоколов поддерживают открытое соединение между двумя устройствами, что позволяет им передавать данные туда и обратно.
HTTP, на котором работает сеть, отличается. Он известен как протокол без установления соединения, потому что он основан на режиме работы запрос / ответ. Веб-браузеры отправляют на сервер запросы на изображения, шрифты, контент и т.д., но после выполнения запроса соединение между браузером и сервером разрывается.
Servers and Clients
Термин сервер может слегка сбивать с толку людей, впервые знакомых с отраслью, поскольку он может относиться как к аппаратному обеспечению (физические компьютеры, на которых размещены все файлы и программное обеспечение, требуемое веб-сайтами), так и к программному обеспечению (программе, которая позволяет пользователям получать доступ к этим файлам в Интернете).
Сегодня мы поговорим о программной стороне вещей. Но сначала несколько определений. URL обозначает Universal Resource Locator и состоит из 3 частей: протокола, сервера и запрашиваемого файла.
Структура URL адреса
Протокол HTTP определяет несколько методов, которые браузер может использовать, чтобы попросить сервер выполнить кучу различных действий, наиболее распространенными из которых являются GET и POST. Когда пользователь щелкает ссылку или вводит URL-адрес в адресную строку, браузер отправляет GET-запрос на сервер для получения ресурса, определенного в URL-адресе.
Сервер должен знать, как обрабатывать этот HTTP-запрос, чтобы получить правильный файл, а затем отправить его обратно браузеру, который его запросил. Наиболее популярное программное обеспечение веб-сервера, которое обрабатывает это Apache и NGINX.
Веб-серверы обрабатывают входящие запросы и отвечают на них соответственно
Оба представляют собой полнофункциональные пакеты программного обеспечения с открытым исходным кодом, которые включают в себя такие функции, как схемы аутентификации, перезапись URL-адресов, ведение журнала и проксирование, и это лишь некоторые из них. Apache и NGINX написаны на C. Технически, вы можете написать веб-сервер на любом языке. Python, golang.org/pkg/net/http, Ruby, этот список может продолжаться довольно долго. Просто некоторые языки лучше выполняют определенные вещи, чем другие.
Создание HTTP сервера с Node.js
Node.js — это среда выполнения Javascript, построенная на движке Chrome V8 Javascript. Он поставляется с модулем http, который предоставляет набор функций и классов для построения HTTP-сервера.
Для этого базового HTTP-сервера мы также будем использовать файловую систему, путь и URL-адрес, которые являются собственными модулями Node.js.
Начните с импорта необходимых модулей.
const http = require('http') // Чтобы использовать HTTP-интерфейсы в Node.js
const fs = require('fs') // Для взаимодействия с файловой системой
const path = require('path') // Для работы с путями файлов и каталогов
const url = require('url') // Для разрешения и разбора URL
Мы также создадим словарь типов MIME, чтобы мы могли назначить соответствующий тип MIME запрашиваемому ресурсу на основе его расширения. Полный список типов MIME можно найти в Internet Assigned Numbers Authority (интернет-центре назначенных номеров).
const mimeTypes = {
'.html': 'text/html',
'.js': 'text/javascript',
'.css': 'text/css',
'.ico': 'image/x-icon',
'.png': 'image/png',
'.jpg': 'image/jpeg',
'.gif': 'image/gif',
'.svg': 'image/svg+xml',
'.json': 'application/json',
'.woff': 'font/woff',
'.woff2': 'font/woff2'
}
Теперь мы можем создать HTTP-сервер с функцией http.createServer()
, которая будет возвращать новый экземпляр http.Server
.
const server = http.createServer()
Мы передадим функцию-обработчик запроса в createServer()
с объектами запроса и ответа. Эта функция вызывается один раз каждый раз, когда к серверу поступает HTTP-запрос.
server.on('request', (req, res) => {
// здесь нужно сделать больше
})
Сервер запускается путем вызова метода listen
объекта server
с номером порта, который мы хотим, чтобы сервер прослушивал, например, 5000
.
server.listen(5000)
Объект request
является экземпляром IncomingMessage и позволяет нам получать доступ ко всей информации о запросе, такой как статус ответа, заголовки и данные.
Объект response
является экземпляром ServerResponse, который является записываемым потоком и предоставляет множество методов для отправки данных обратно клиенту.
В обработчике запросов мы хотим сделать следующее:
- Разобрать входящий запрос и обработать его без расширений
const parsedUrl = new URL(req.url, 'https://node-http.glitch.me/') let pathName = parsedUrl.pathname let ext = path.extname(pathName) // Для обработки URL с конечным символом '/', удаляем вышеупомянутый '/' // затем перенаправляем пользователя на этот URL с помощью заголовка 'Location' if (pathName !== '/' && pathName[pathName.length - 1] === '/') { res.writeHead(302, {'Location': pathName.slice(0, -1)}) res.end() return } // Если запрос для корневого каталога, вернуть index.html // В противном случае добавляем «.html» к любому другому запросу без расширения if (pathName === '/') { ext = '.html' pathName = '/index.html' } else if (!ext) { ext = '.html' pathName += ext }
- Выполните некоторые элементарные проверки, чтобы определить, существует ли запрошенный ресурс, и ответить соответственно
// Создаем правильный путь к файлу, чтобы получить доступ к соответствующим ресурсам const filePath = path.join(process.cwd(), '/public', pathName) // Проверяем, существует ли запрошенный ресурс на сервере fs.exists(filePath, function (exists, err) { // Если запрошенный ресурс не существует, ответим 404 Not Found if (!exists || !mimeTypes[ext]) { console.log('Файл не найден: ' + pathName) res.writeHead(404, {'Content-Type': 'text/plain'}) res.write('404 Not Found') res.end() return } // В противном случае отправим ответ со статусом 200 OK, // и добавляем правильный заголовок типа контента res.writeHead(200, {'Content-Type': mimeTypes[ext]}) // Считать файл и передать его в ответ const fileStream = fs.createReadStream(filePath) fileStream.pipe(res) })
Весь код размещен на Glitch, и вы можете сделать ремикс на проект, если хотите.
https://glitch.com/edit/#!/node-http
Создание HTTP-сервера с фреймворками Node.js
Фреймворки Node.js, такие как Express, Koa.js и Hapi.js, поставляются с различными полезными функциями промежуточного программного обеспечения, в дополнение к множеству других удобных функций, которые избавляют разработчиков от необходимости писать самим.
Лично я чувствую, что лучше сначала изучать основы без фреймворков, просто для понимания того, что происходит под капотом, а затем после этого сходить с ума с любым фреймворком, который вам нравится.
В Express имеется собственный встроенный плагин для обслуживания статических файлов, поэтому код, необходимый для выполнения тех же действий, что и в собственном Node.js, значительно короче.
const express = require('express')
const app = express()
// Укажем директорию в которой будут лежать наши файлы
app.use(express.static('public'))
// Отправляем index.html, когда пользователи получают доступ к
// корневому каталог с использованием res.sendFile()
app.get('/', (req, res) => {
res.sendFile(__dirname + '/public/index.html')
})
app.listen(5000)
Koa.js не имеет подобного плагина внутри своего ядра, поэтому любой требуемый плагин должен быть установлен отдельно. Последняя версия Koa.js использует асинхронные функции в пользу обратных вызовов. Для обслуживания статических файлов вы можете использовать плагин koa-static
.
const serve = require('koa-static')
const koa = require('koa')
const app = new koa()
// Укажем директорию в которой будут лежать наши файлы
// По умолчанию koa-static будет обслуживать файл index.html в корневом каталоге
app.use(serve(__dirname + '/public'))
app.listen(5000)
Hapi.js поддерживает настройку и вращается вокруг настройки объекта server
. Он использует плагины для расширения возможностей, таких как маршрутизация, аутентификация и так далее. Для обслуживания статических файлов нам понадобится плагин с именем inert
.
const path = require('path')
const hapi = require('hapi')
const inert = require('inert')
// Маршруты могут быть настроены на объекте сервера
const server = new hapi.Server({
port: 5000,
routes: {
files: {
relativeTo: path.join(__dirname, 'public')
}
}
})
const init = async () => {
// server.register() команда добавляет плагин в приложение
await server.register(inert)
// inert добавляет обработчик каталога в
// указатель маршрута для обслуживания нескольких файлов
server.route({
method: 'GET',
path: '/{param*}',
handler: {
directory: {
path: '.',
redirectToSlash: true,
index: true
}
}
})
await server.start()
}
init()
У каждой из этих платформ есть свои плюсы и минусы, и они будут более очевидными для более крупных приложений, а не просто для обслуживания одной HTML-страницы. Выбор структуры будет сильно зависеть от реальных требований проекта, над которым вы работаете.
Завершение
Если сетевая сторона вещей всегда была для вас черным ящиком, надеюсь, эта статья может послужить полезным введением в протокол, который обеспечивает работу сети. Я также настоятельно рекомендую прочитать документацию по API Node.js, которая очень хорошо написана и очень полезна для любого новичка в Node.js в целом.
- HTTP by MDN
- Anatomy of an HTTP Transaction
- HTTP Server: Everything you need to know to build a simple HTTP server from scratch
Если ничто другое не помогает, прочтите, наконец,инструкцию!
Кан
Мы подготовили описания (руководства пользователя) серверов на русском языке для удобства пользователя и соблюдения Российских норм.
В описании содержатся сведения о технических данных и настройках систем на платформе Supermicro:
- общая техническая информация о базовой платформе;
- схема расположения основных компонентов материнской платы Supermicro;
- схема расположения и описание предназначения элементов управления платформой, индикаторов, разъемов, перемычек на материнской плате;
- описание процесса монтажа компонентов системы в процессе сборки сервера;
- настройки BIOS Supermicro, логин и пароль по умолчанию для входа в настройки, основные коды ошибок BIOS
- настройки доступа по IPMI
Скачать русскоязычное руководство пользователя можно как по ссылке в таблице, приведенной ниже, так и со страницы описания сервера.
Сервер, модель | Раздел | Отличительные особенности | База | Руководство пользователя |
E35-104104 | 1U | 1x Xeon E3 4x HDD | SYS 5019S-M | Руководство пользователя Supermicro 5019S-M/MR ГОТОВИТСЯ |
E54-104108 | 1U | 1x Xeon E5 4x HDD | SYS 5018R-M | Руководство пользователя Supermicro 5018R-M/MR ГОТОВИТСЯ |
E54-104208 | 1U | 2x Xeon E5 4x HDD | SYS 6018R-MT | Руководство пользователя Supermicro 6018R-MT/MTR ГОТОВИТСЯ |
E54-104216R | 1U | 2x Xeon E5 4x HDD, 2х БП | SYS 6018R-WTR | Руководство пользователя Supermicro 6018R-WTR/WTRT ГОТОВИТСЯ |
E54-110216R xSAS | 1U | 2x Xeon E5 8x HDD, 2х БП | SYS 1028R-WTR | Руководство пользователя Supermicro 1028R-WTR/WTRT ГОТОВИТСЯ |
E54-110216RT 2*10G | 1U | 2x Xeon E5 8x HDD 2x10G, 2х БП | SYS 1028R-WTRT | Руководство пользователя Supermicro 1028R-WTR/WTRT ГОТОВИТСЯ |
E54-224216 | 2U | 2x Xeon E5 24x HDD, 2х БП | X10DRI, CSE-216BE16 | ГОТОВИТСЯ |
E54-212216 | 2U | 2x Xeon E5 12x HDD, 2х БП | X10DRI, CSE-826BE16 | ГОТОВИТСЯ |
E54-42621 | 4U | 2x Xeon E5 24x HDD, 2х БП | X10DRI, CSE-846BE16 | ГОТОВИТСЯ |
E54-472216 | 4U | 2x Xeon E5 72x SAS HDD, 2х БП | X10DRI, CSE-417BE1C | ГОТОВИТСЯ |
S9-104106 | 1U | 1x Intel Scalable 4x HDD | SYS 5019P-M | ГОТОВИТСЯ |
S9-104108 | 1U | 1x Intel Scalable 4x HDD | SYS 5019P-MT | Руководство пользователя Supermicro 5019P-MT/MTR |
Запрашивайте | 1U | 1x Intel Scalable 4x HDD, 2х БП | SYS 5019P-WTR | Руководство пользователя Supermicro 5019P-WT/WTR |
S9-110106R | 1U | 1x Intel Scalable 10x HDD, 2х БП | SYS 1019P-WTR | Руководство пользователя Supermicro 1019P-WTR |
S9-104208 | 1U | 2x Intel Scalable 4x HDD | SYS 6019P-MT | Руководство пользователя Supermicro 6019P-MT/MTR |
S9-108208 | 1U | 2x Intel Scalable 8x HDD | SYS 1029P-MT | Руководство пользователя Supermicro 1029P-MT/MTR |
S9-104212R | 1U | 2x Intel Scalable 4x HDD, 2х БП | SYS 6019P-WTR | Руководство пользователя Supermicro 6019P-WT/WTR |
S9-108212R | 1U | 2x Intel Scalable 8x HDD, 2х БП | SYS 1029P-WTR | Руководство пользователя Supermicro 1029P-WTR |
S9-110212RT | 1U | 2x Intel Scalable 8x HDD, 2x 10G, 2х БП | SYS 1029P-WTRT | Руководство пользователя Supermicro 1029P-WTRT |
S9-212216 | 2U | 2x Intel Scalable 12x HDD, 2х БП | X11DPi-N, CSE-826BE1C | ГОТОВИТСЯ |
S9-224216 | 2U | 2x Intel Scalable 24x HDD, 2х БП | X11DPi-N, CSE-216BE1C | ГОТОВИТСЯ |
S9-424216 | 4U | 2x Intel Scalable 24x HDD, 2х БП | X11DPi-N, CSE-846BE1C | ГОТОВИТСЯ |
S9-472216 | 4U | 2x Intel Scalable 72x SAS HDD, 2х БП | X11DPi-N, CSE-417BE1C | ГОТОВИТСЯ |
S9-U110224RT | 1U | 2x Intel Scalable 10x HDD, 2х БП | SYS 1029U-TRT | ГОТОВИТСЯ |
S9-U104224RTP | 1U | 2x Intel Scalable 4x HDD, 2х БП | SYS 6019U-TRTP | ГОТОВИТСЯ |
S9-U110224RTP | 1U | 2x Intel Scalable 10x HDD, 2х БП | SYS 1029U-TRTP | ГОТОВИТСЯ |
S9-U104224R | 1U | 2x Intel Scalable 4x HDD, 2х БП | SYS 6019U-TRT | ГОТОВИТСЯ |
В этой статье мы рассмотрим самые базовые настройки Windows Server 2022 — это Active Directory, DNS, DHCP, настройки терминальных лицензий, добавление пользователей… Эти настройки являются не обязательными, но как правило применяются как базовые для большинства задач.
— Скачать бесплатно дистрибутив Windows Server 2022 Standard и Datacenter можете в нашем каталоге.
— Пошаговая инструкция по установке Windows Server 2022 в нашей прошлой статье.
— Приобрести ключи активации для Windows Server 2022 Standard и Datacenter можете так же в нашем каталоге.
1) При установке Windows Server 2022 например на русском языке, добавляется по умолчанию только одна раскладка клавиатуры — «Русский язык», для настроек нам необходима еще английская раскладка клавиатуры. Добавим ее.
Заходим в меню «Пуск» => Параметры => Время и язык.
Во вкладке «Язык» нажимаем на «Добавление языка».
Выбираем «Английский» => Далее.
Можем оставить все галки, кроме назначения языком интерфейса и нажимаем «Установить».
Теперь дожидаемся установки языкового пакета, после установки можете перезагрузить сервер и у Вас появится возможность переключения языка раскладки на английский язык.
2) Следующим шагом, нам нужно задать имя серверу для более простого подключения к нему. Заходим в проводник => Слева «Этот компьютер» => Свойства.
В меню «О программе» нажимаем «Дополнительные параметры системы».
В новом окне выбираем вкладку «Имя компьютера» => Изменить.
Задаем имя компьютера, имя может быть любое. Рекомендуем не использовать кириллицу, а только латиницу и цифры.
Для применения настроек — перезагружаем сервер.
3) Далее, зададим локальный статический IP адрес сервера. Это так же необходимо для бесперебойного подключения к нему. (мы рекомендуем помимо всего использовать так же статический публичный IP для корректного подключения к нему из внешней сети интернет). Так же, данная настройка обязательна для последующей настройки DHCP сервера.
В поиск вводим ncpa.cpl
Правой кнопкой мыши на сетевую карточку => Свойства.
Мы будем настраивать Ipv4, выделяем его курсором и нажимаем «Свойства».
Задаем настройки IP Вашей сети. Внимание! На скриншоте ниже — это пример, у вас должны быть Ваши собственные настройки под Вашу сеть.
3) Теперь переходим к добавлению ролей и компонентов в Active Directory (Диспетчере серверов).
Нажимаем меню «Пуск» => Диспетчер серверов.
Добавить роли и компоненты.
В следующем окне просто нажимаем «Далее».
В меню «Тип установки» выбираем пункт => Установка ролей и компонентов.
Далее «Выбираем сервер из пула». Он у нас должен быть один.
Далее, выбираем нужные Вам роли (функионал сервера), в случае чего, вы всегда сможете добавить что-либо еще, если что-то понадобится дополнительное.
Мы выберем на примере DHCP-сервер, DNS-сервер (Внимание! DNS (домен) не всегда нужен под рабочие задачи, убедитесь, что он нужен именно Вам, прежде чем его выбирать для установки. Мы его устанавливаем лишь для примера.), Доменные службы и Службы для удаленных рабочих столов (для подключения к серверу по RDP).
После выбора нужных служб идем далее.
Далее, пролистываем до меню «Службы ролей» в подпункт «Службы удаленных рабочих столов» и выбираем здесь пункты «Лицензирование удаленных рабочих столов», «Узел сеансов удаленных рабочих столов» и «Шлюз удаленных рабочих столов».
Пролистываем до конца в меню «Подтверждение», нажимаем «Установить» и дожидаемся установки служб.
После перезагрузите сервер для применения настроек.
4) После перезагрузки заходим в меню Active Directory (Диспетчер серверов) и перейдем в настройки доменных служб (DNS), если вы не выбирали данную службу, то пропустите этот пункт настройки.
Выбираем пункт «Добавить новый лес» => и задаем имя для домена, он может быть любым, например названием вашей компании, или название вашего сайта. Настоятельно рекомендуем задавать только на латинице (или цифры).
В параметрах контроллера домена задаем пароль для Вашего домена.
Параметр NetBIOS как правило задается автоматически от имени домена.
Доходим до проверки предварительных требований и нажимаем «Установить». Дождитесь установки.
После установки домена можете проверить в свойствах системы, что Ваш сервер добавлен в домен.
5) Перейдем к настройке DHCP, чтобы сервер мог раздавать IP адреса на клиентские ПК.
Нажимаем «Далее».
Оставляем по умолчанию.
В этой настройке готово.
Теперь в диспетчере серверов, в меню слева выбираем пункт DHCP => Правой кнопкой мыши на Ваш сервер => Диспетчер DHCP
Раскрываем ветку DHCP => Ваш сервер => IPv4, правой кнопкой мыши на этот пункт => Создать область.
В новом окне «Далее».
Задаем любое имя области.
Далее задаем диапазон IP адресов, который будет раздавать сервер на локальные компьютеры, а так же маску подсети. (На скриншоте ниже — это пример, у вас может быть свой диапазон).
При желании, можете исключить какой-либо промежуток IP адресов, либо просто нажмите «Далее».
Задаем срок действия раздачи IP адреса на компьютеры. Мы зададим большой срок в 365 дней, у вас он может быть любой под Ваши задачи.
Выбираем пункт «Да, настроить эти параметры сейчас».
Можете добавить адрес маршутизатора (роутера) из вашей сети.
Можете добавить WINS-сервер, если у вас уже он был ранее настроен на сервере, то он добавится автоматически. Либо можете пропустить данный пункт настройки.
Активировать эту область сейчас.
Готово.
Теперь видим, что область успешно создана.
6) Теперь приступим к лицензированию удаленных рабочих столов (RDP / RDS), чтобы Вы могли подключаться к серверу с клиентских ПК по RDP.
— Первое, что для этого нужно — это ключ активации Windows Server 2022 RDS User или Device CAL. Приобрести его можете в нашем каталоге на следующей странице.
— Чем отличается User CAL от Device CAL можете ознакомиться в нашей прошлой статье.
— Для активации ключа RDS теперь можете воспользоваться следующей инструкцией по настройке и активации данного функционала в нашей прошлой статье. Инструкция является универсальной, начиная от 2012r2 версии до 2022 версии Windows Server.
7) Следующим шагом рассмотрим как добавить пользователя в Windows Server, в случае, если Вы не устанавливали на сервер домен (DNS). С созданными пользователями Вы можете под их данными подключаться к серверу по RDP.
Заходим в Active Directory => Средства => Управление компьютером => Локальные пользователи и группы => Пользователи => Новый пользователь.
Задаем имя пользователя, можете так же указать его должность, или краткое описание. Обязательно задаем ему пароль для входа. При желании можете установить пункты запрета на смену пароля пользователю и отключение срока действия пароля.
Пользователь создан. Нажав на него двойным кликом курсором мыши можете задать пользователю более детальные настройки, при необходимости.
Получите грант до 500 000 рублей на IT-инфраструктуру для бизнеса. Узнайте
больше у персонального менеджера
Связаться
Инструкции
В разделе представлены инструкции по работе с выделенными и виртуальными серверами и решению связанных с серверами задач.
Хотите внести свой вклад?
Вы можете заработать до 10 000 рублей, написав статью
или инструкцию в нашу базу знаний
15 лет опыта
Сосредоточьтесь на своей работе: об остальном позаботимся мы
165 000 клиентов
Нам доверяют частные лица и компании, от небольших фирм до корпораций
Поддержка 24/7
100+ специалистов поддержки, готовых помочь в чате, тикете и по телефону
Что такое сервер с точки зрения комплектующих? Тот же ПК, только представлен зачастую в другом корпусе, а железо полностью ориентировано на безотказность и нагрузки в режиме 24/7.
Конфигурация сервера зачастую произвольная, поскольку полностью зависит от возлагаемых на машину задач, хотя сценарий монтажа и тестирования в большинстве случаев одинаков. О том, как происходит сборка и запуск сервера расскажем подробно в нашей статье.
За подбор комплектующих отвечает системный администратор, выполняющий сборку по спецификациям с учетом особенностей платформы.
В корпусах типа Tower или Rack (1U/2U/4U) чаще всего можно наблюдать классическую картину:
- 1 или 2 процессора под массивными радиаторами;
- оперативная память с поддержкой коррекции ошибок;
- грядка дисковых/твердотельных накопителей;
- графический адаптер;
- плата скоростного сетевого подключения;
- различные контроллеры (RAID, звук и т.д.).
И все это подпитывает один, а то и парочка блоков питания с горячей заменой.
Также в задачу профильных инженеров входят сверка серийных номеров оборудования, регистрация в учетной записи клиента, полная первичная настройка сервера и тестирование системы на стрессоустойчивость. Но это вкратце. Далее расскажем о процессе подробнее.
Порядок монтажа оборудования
Инсталляция комплектующих может отличаться для корпусов различных форм-факторов. Но давайте возьмем за константу, что блоки питания во всех современных серверах модульные — плюс с поддержкой горячей замены, а потому ставятся последними.
NB! наденьте специальные диэлектрические печатки и заземляющий браслет. Статика — это не только веселые трескучие вспышки, возникающие, когда снимаешь свитер в темноте, но и смерть для комплектующих.
Шаг 1. Установка материнской платы
Первым делом коробку готовят к установке материнской платы и дополнительных модулей расширения. Для этих целей в корпус вкручивают шестигранные латунные стойки на соответствующие места. Они слегка приподнимают текстолит над металлической крышкой, чтобы избежать короткого замыкания. Дополнительно между МП и стенкой прокладывают диэлектрик. Параллельно не забудьте удалить заглушки с той части корпуса, куда будут «выглядывать» разъемы карт расширения.
Вооружившись все теми же перчатками, достаньте материнскую плату из коробки. Если в ней стоит батарейка CMOS (BIOS/UEFI) — уберите ее на время. Дополнительные меры предосторожности от статики и КЗ по конденсаторам и цепям питания. Ремонтировать долго, дорого, и никто потом спасибо не скажет за простой.
Шаг 2. Инсталляция процессоров
Пока основная плата еще не прикручена — самое время начинить ее процессорами. Обратите внимание, что LGA-сокеты Intel и AMD не просто так защищены пластиковой крышкой. Подошва ЦП примыкает к огромному количеству контактов-ножек на плате. Малейшая неосторожность и быть беде. Вооружитесь инструкцией, которую к своим товарам прикладывают всем производители материнских плат и процессоров. Особенно, если ранее не делали этого самостоятельно.
Процессор сел в сокет? Отлично, самое время накрыть его радиатором системы охлаждения. Не забудьте про термопасту между площадкой ЦП и подошвой радиатора.
Полностью подготовленная плата ставится в корпус на ранее вкрученные латунные проставки. Их количество и расположение должны идеально соответствовать крепежным отверстиям на МП. И не стоит проверять текстолит на прочность — он этого не оценит.
Далее, пока вам ничего не мешает, подключите питающие кабели, грядку USB и других портов передней/задней панелей, кнопки перезагрузки. Стяните провода стяжками, чтобы аккуратно уложить их в узком пространстве корпуса. На этом базовая часть завершена.
Шаг 3. Установка плат расширения и рабочих модулей
Первое, на что стоит обратить внимание — оперативная память. Мало того, что ее стандарт и рабочая частота должны соответствовать спецификациям процессора, так еще и слоты для установки на плате играют роль. Само собой, если вы не решились забить все гнезда плашками ECC-памяти.
Каждый производитель материнских плат предоставляет подробную инструкцию по работе ОЗУ:
- в двухканальном режиме;
- в трехканальном режиме;
- в четырехканальном режиме и т.д.
Чем больше каналов — тем выше пропускная способность. Допустим, один канал демонстрирует работу на скорости 25600 МБ/с (характерно для DDR4 3200 МГц). В двухканале показатель удвоится до 51200 МБ/с, а в четырехканале и вовсе возрастет до 102400 МБ/с.
В целом, у ОЗУ есть ряд технических ограничений, которые необходимо строго соблюдать:
- недопустимо нечетное количество планок, иначе скорость работы сильно снизится;
- объем и частота ОЗУ должны быть идентичны для всех плашек;
- закупите модули от одного производителя, чтобы избежать проблем с совместимостью;
- внимательно изучите характеристики процессора, чтобы не переплатить за ОЗУ.
Информация касается как чипов Intel, так и AMD. Если вы не уверены в особенностях работы серверной оперативной памяти — обязательно проверьте спецификации к процессорам.
Последний этап сборки — подключение плат расширения в плоты PCI-E (RAID-контроллеры, графические ускорители, сетевые платы). Для них также предусмотрены специальные посадочные гнезда, коннекторы и шлейфы.
И перед закрытием крышки не забудьте вернуть на место все вентиляторы системы охлаждения, которые изъяли из корпуса. На современных серверах они модульные и с магнитными креплениями, поэтому о них периодически забывают.
Первый запуск и установка ПО
Как узнать, что железо работает? Включить сервер и подождать. Только не забудьте монитор подключить. Если картинка есть — значит сборка проведена успешно. Осталось убедиться в нюансах:
- все планки ОЗУ подключены верно;
- провода питают все необходимые элементы;
- сервер видит все комплектующие;
- нет необходимости срочно менять дефектные устройства.
В качестве ПО можно использовать набор тестов ODSL Database Test Suite или аналоги. Нашли дефект, BSoD или нерабочий порт? Самое время сказать об этом дистрибьютору. А если все в порядке — самое время установить серверную операционную систему, а также ряд программ для нагрузочного стресс-теста (Memtest 64, AIDA 64, OCCT, Prime 95, Stress-ng или POSIX Stress).
Так вы поймете, как обстоят дела с температурой, скоростью, пропускной способностью памяти и сети. Появятся мысли насчет будущего апгрейда.
Стоит ли сегодня заниматься самостоятельной сборкой и настройкой сервера? Только в том случае, если у вас крайне ограниченный бюджет. Мы же рекомендуем обратиться к специалистам по ряду причин:
- все возможные дефекты железа устраняются нами же;
- сборка проходит несколько циклов тестирования;
- комплектующие идеально совместимы между собой;
- самое свежее ПО для работы;
- гарантия на сервер в сборе.
Остались вопросы? Не стесняйтесь задавать их консультантам компании Market.Marvel. Мы предложим оптимальные сборки сервера под нужды вашего бизнеса. Также предоставим необходимую информацию о совместимости компонентов, предложим решения по увеличению быстродействия оборудования. В любой момент вы можете обратиться за консультацией к специалистам нашей компании, и мы ответим на все интересующие вас вопросы.