Архив рубрики: Публикации

Linux, apt-mirror + nginx. Локальный репозиторий

Утилита apt-mirror используется для создания локального зеркала репозитория Linux.





Читать далее…

Как установить модуль PageSpeed ​​в Ubuntu

Это краткое руководство показывает студентам и новым пользователям, как установить модуль Google PageSpeed ​​в Ubuntu 20.04 | 18.04 с поддержкой Nginx HTTP.

Модуль PageSpeed ​​- это открытый исходный код, Apache, поддерживаемый и созданный Google, чтобы помочь ускорить загрузку веб-страниц, переписав их для уменьшения задержки и уменьшения пропускной способности.

Модуль PageSpeed ​​был создан давно, и сегодня вы, вероятно, не увидите его установленным на слишком многих веб-страницах. Но концепция, лежащая в основе этого, по-прежнему актуальна.

Основная цель проекта PageSpeed ​​заключалась в автоматической оптимизации веб-сайтов, тем самым повышая удобство работы пользователей в Интернете на любом устройстве.

Если вы используете веб-сайт сегодня и хотите улучшить взаимодействие с пользователями за счет оптимизации веб-страниц, то модуль PageSpeed ​​должен стать отличным местом для начала.

Я использую его на этом сайте, и он отлично подходит для моей аудитории.

Чтобы узнать больше о модуле PageSpeed, посетите его веб-сайт здесь.

Чтобы начать установку и настройку модуля PageSpeed ​​в Ubuntu с поддержкой Nginx, выполните следующие действия:

Установите необходимые пакеты

Эти пакеты необходимы для компиляции и сборки модулей PageSpeed ​​в Ubuntu. Выполните следующие команды, чтобы установить пакеты ниже:

sudo apt update

sudo apt install libssl-dev libxslt-dev libgd-dev curl nano

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

Установить HTTP-сервер Nginx

Теперь, когда указанные выше пакеты установлены, выполните приведенные ниже команды, чтобы установить HTTP-сервер Nginx в Ubuntu. Установить Nginx в Ubuntu довольно просто. Стабильные пакеты Nginx доступны в репозиториях Ubuntu по умолчанию.

Просто выполните приведенные ниже команды, чтобы установить Nginx.

sudo apt install nginx

По некоторым причинам установленный Ubuntu Nginx не работал хорошо, когда я создавал модули PageSpeed. В этом случае обновитесь до версии из официального репозитория Nginx.

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

sudo apt install gnupg2 ca-certificates lsb-release

Затем создайте файл репозитория в Ubuntu.

echo "deb http://nginx.org/packages/ubuntu lsb_release -cs nginx" | sudo tee/etc/apt/sources.list.d/nginx.list

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

curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -

После этого выполните обновление, выполнив следующие команды:

sudo apt update

sudo apt install nginx

После установки Nginx вы также захотите установить установленную версию. Этот номер версии понадобится вам для создания правильных пакетов PageSpeed ​​для Nginx.

Чтобы узнать номер версии Nginx, выполните следующие команды:

nginx -v

Это отобразит похожие строки, как показано ниже:

nginx version: nginx/1.20.0

Вы также захотите узнать, какие модули и аргументы в настоящее время включены и созданы с помощью Nginx. Мы хотим использовать идентичную конфигурацию при перекомпиляции Nginx с поддержкой PageSpeed.

Чтобы найти текущие установочные модули и аргументы Nginx, выполните следующие команды:

nginx -V

Это должно отобразить аналогичную строку, как показано ниже:

--prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-g -O2 -fdebug-prefix-map=/data/builder/debuild/nginx-1.20.0/debian/debuild-base/nginx-1.20.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie'

Скопируйте всю строку выше и сохраните ее в удобном для вас месте. Мы будем использовать строку выше при компиляции модуля PageSpeed ​​в Nginx.

Установить модуль PageSpeed

Теперь, когда у вас есть вся необходимая информация, выполните приведенные ниже команды, чтобы начать компиляцию PageSpeed ​​с Nginx.

bash <(curl -f -L -sS https://ngxpagespeed.com/install) --nginx-version 1.20.0

Замените номер версии Nginx на соответствующий номер, установленный в настоящее время в вашей системе. Когда вы запускаете команду из домашнего каталога, она загружает пакеты PageSpeed ​​в вашу домашнюю папку.

Для этого руководства пакеты были загружены в мою папку / home / richard с именем incubator-pagespeed-ngx-latest-stable.

/home/richard/incubator-pagespeed-ngx-latest-stable

Вам понадобится указанный выше путь при сборке Nginx для добавления модуля PageSpeed.

Во время сборки вам будет предложено настроить дополнительные аргументы для Nginx. Помните папку PageSpeed, созданную в вашем домашнем каталоге?

About to build nginx.  Do you have any additional ./configure

arguments you would like to set?  For example, if you would like

to build nginx with https support give --with-http_ssl_module

If you don't have any, just press enter.

>

Включите папку в процесс сборки. Вот так это будет выглядеть:

--add-dynamic-module=/home/richard/incubator-pagespeed-ngx-latest-stable

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

--add-dynamic-module=/home/richard/incubator-pagespeed-ngx-latest-stable --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-g -O2 -fdebug-prefix-map=/data/builder/debuild/nginx-1.20.0/debian/debuild-base/nginx-1.20.0=. -fstack-protector-strong -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie'

Когда появится запрос снова, выберите Y для Да.

You have set --with-debug for building nginx, but precompiled Debug binaries for

PSOL, which ngx_pagespeed depends on, aren't available.  If you're trying to

debug PSOL you need to build it from source.  If you just want to run nginx with

debug-level logging you can use the Release binaries.



Use the available Release binaries? [Y/n] Y

Для завершения сборки.

После завершения сборки модуль PageSpeed ​​должен быть включен в Nginx. Вы можете протестировать, выполнив следующие команды:

nginx -V

Теперь он должен вывести строку с вашим домашним каталогом, указывающим на папку PageSpeed.

nginx version: nginx/1.20.0

built by gcc 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04) 

built with OpenSSL 1.1.1f  31 Mar 2020

TLS SNI support enabled

configure arguments: --add-module=/home/richard/incubator-pagespeed-ngx-latest-stable --add-dynamic-module=/home/richard/incubator-pagespeed-ngx-latest-stable --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules

Затем включите модули PageSpeed ​​и создайте символическую ссылку для модулей Nginx.

sudo cp ~/nginx-1.20.0/objs/*.so /etc/nginx/modules

sudo ln -s /usr/lib/nginx/modules /etc/nginx/modules

Наконец, добавьте этот начальный блок PageSpeed ​​в серверный блок Nginx веб-сайта, который вы хотите улучшить. В каждый серверный блок, где включен PageSpeed, добавьте:

server {

...

pagespeed on;

pagespeed FileCachePath /var/ngx_pagespeed_cache;



location ~ ".pagespeed.([a-z].)?[a-z]{2}.[^.]{10}.[^.]+" {

  add_header "" "";

}

location ~ "^/pagespeed_static/" { }

location ~ "^/ngx_pagespeed_beacon$" { }

...

}

Сохраните выход из файла и перезагрузите Nginx

sudo systemctl reload nginx

Проверить настройки PageSpeed.

curl -I -p http://example.com

Вы должны увидеть результат, аналогичный приведенному ниже.

HTTP/1.1 200 OK

Server: nginx/1.20.0

Date: Sat, 15 May 2021 14:58:16 GMT

Content-Type: text/html

Content-Length: 612

Last-Modified: Tue, 20 Apr 2021 13:35:47 GMT

X-Page-Speed: 1.13.35.2-0 

Cache-Control: max-age=0, no-cache

Это должно сработать. Дополнительные настройки PageSpeed ​​доступны на его веб-сайте. Посетите сайт и найдите дополнительные параметры конфигурации.

Фильтры PageSpeed ​​(modpagespeed.com)

Заключение

В этом посте показано, как установить модуль PageSpeed ​​в Ubuntu с HTTP-сервером Nginx. Если вы обнаружите какую-либо ошибку выше, пожалуйста, используйте форму комментария ниже, чтобы сообщить.



2021-05-17T08:18:27
Вопросы читателей

Установка и настройка DHCP на Ubuntu Server

Сегодня в статье рассмотрим пример по установки и настройки dhcp сервера на операционной системой Ubuntu Server 20.04.

DHCP — сетевой протокол, позволяющий сетевым устройствам автоматически получать IP-адрес и другие параметры, необходимые для работы в сети TCP/IP. Если сказать ещё проще, то это программное обеспечения для автоматической настройки вашей сети. Читать

Что означает 127.0.0.1?

IP-адресация

Интернет-протокол или IP использует 32-битный IPv4 или 128-битный IPv6-адрес для идентификации устройства в сети. Это аналог нашего физического домашнего адреса, который используется для доставки нашей почты и товаров для покупок в Интернете, для связи с нами и т. д. Наш физический домашний адрес представляет собой сочетание цифр и слов, но в случае компьютеров они понимают только числа. адреса в определенном формате. Даже если мы введем адрес вроде «www.domain.ru», компьютеры преобразуют его в числовой формат с помощью механизма DNS.

IP-адрес является частным, если он используется только внутри локальной сети. С другой стороны, общедоступный IP-адрес используется для доступа к сетям и устройствам за пределами частной локальной сети и через Интернет. Три различных диапазона IP-адресов назначаются в частном блоке Управлением по присвоению номеров в Интернете (IANA). RFC 1918 определяет эти три диапазона следующим образом:

10.0.0.0 -10.255.255.255



172.16.0.0 - 172.31.255.255



192.168.0.0 – 192.168.255.255

 

Блок адресов 127.0.0.0/8 зарезервирован для адресов loopback или localhost. По сути, это частный диапазон IP-адресов на уровне хоста. Любой IP-адрес внутри этого диапазона не может использоваться ни в какой сети. Давайте подробно рассмотрим концепцию localhost IP или 127.0.0.1.

 

Что такое Localhost или 127.0.0.1?

Localhost относится к имени самого компьютера. Localhost перенаправляет на IP-адрес 127.0.0.1, который также называется адресом обратной связи. Фактически, любой IPv4-адрес в блоке 127.0.0.0/8 обозначается как адрес обратной связи. Приложения обычно предпочитают использовать 127.0.0.1 для своей сетевой службы. IP-адрес 127.0.0.1 обычно назначается интерфейсу обратной связи. Интерфейс обратной связи технически представляет собой замкнутую цепь. Это означает, что любой пакет TCP или UDP, поступающий на интерфейс обратной связи (localhost или 127.0.0.1), будет маршрутизироваться на сам компьютер без выхода во внешнюю сеть или в Интернет.

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

 

Потребность в Localhost

Основная цель использования Localhost — это разработка и тестирование приложений перед их развертыванием в производственной среде. Один из популярных примеров — разработка WordPress. Можно использовать локальную среду для тестирования новых подключаемых модулей и обновлений перед их развертыванием в реальном мире. Некоторые приложения, такие как Stringer RSS reader, можно использовать только через Localhost. Если вы хотите проверить, правильно ли настроен Localhost на вашем компьютере, просто установите веб-сервер Apache и перейдите по адресу http://localhost или http://127.0.0.1. Это откроет домашнюю страницу Apache. Если это локальный хост IPv6, вы можете получить к нему доступ, перейдя по URL-адресу HTTP://[:: 1]/ Для доступа к этой веб-странице на других устройствах в вашей локальной сети вам потребуется его частный IP-адрес, назначенный DHCP-сервером. Точно так же, если вы хотите получить доступ к этой веб-странице из удаленного места,

Помимо 127.0.0.1, localhost также может быть сопоставлен с другими IP-адресами обратной петли. Например, вы все еще можете получить доступ к стартовой странице Apache с любого адреса от 127.0.0.1 до 127.0.0.255 в сети 127.0.0.0/28.

 

Локальный IPv6

Новый преемник IPv4, IPv6 — это Интернет-протокол (IP) следующего поколения. Он имеет 128-битный IP-адрес. Как и 32-битный адрес обратной связи IPv4, IPv6 также определяет 128-битный адрес обратной связи. Обозначение для адреса localhost IPv6: 1/128. Обычно приложения настроены на использование адресов IPv4 и IPv6. Если вы ранее установили веб-сервер Apache на своем сервере Linux, вы заметите, что можете посетить стартовую страницу Apache с адресом localhost IPv6. Выбор использования IPv6 или IPv4 loopback IP может зависеть от ваших требований. Возможно, вы хотите разработать свое приложение для использования только адресов IPv6, в этом случае вы можете настроить для него локальную сеть IPv6. Каждый имеет свои преимущества перед другим.

 

Разрешение имени для локального хоста

Почти в каждой операционной системе существует файл хоста, который преобразует имя хоста в IP-адрес. Этот файл также содержит разрешение имен для локального хоста IPv4 и IPv6. Давайте быстро посмотрим на содержимое этого файла в ОС Ubuntu 20.04. Откройте терминал (ctrl + alt + t) и введите:

$ cat /etc/hosts

 

Приведенная выше команда отобразит содержимое файла хоста на терминале.

 

Заключение

В этом руководстве мы изучили различные функции и способы использования IP-адреса localhost или loopback. Это действительно большое благо для разработки приложений, поскольку оно обеспечивает большую гибкость и множество возможностей.



2021-05-14T10:51:46
Сети

Создание разделов диска при установке Debian

На этом уроке разберём создание разделов при установке операционной системы Debian 11. Каждый раздел будем использовать по разному.





Читать далее…

Как проверить версию MySQL в Ubuntu Linux

Это краткое руководство показывает студентам и новым пользователям, как проверять версии MySQL/MariaDB в Ubuntu Linux.

Как узнать, какие версии MySQL или сервера базы данных MariaDB у вас установлены? Как узнать? Какую команду вы используете?

Ответ на все ваши вопросы подробно описан ниже.

В настоящее время, куда бы вы ни посмотрели, вы найдете сервер базы данных MariaDB, который используется во многих проектах с открытым исходным кодом. Несколько лет назад этого не было.

Тогда MySQL был, вероятно, единственным сервером баз данных, который использовался в большинстве проектов с открытым исходным кодом. Однако после изменений лицензирования, внесенных Oracle, новая материнская компания создала альтернативу MySQL под названием MariaDB.

MariaDB — это прямая замена MySQL. Это означает, что во многих случаях вы можете просто удалить MySQL и установить MariaDB, и все готово. Обычно нет необходимости конвертировать какие-либо файлы данных.

Какую бы базу данных вы ни использовали, приведенные ниже команды должны работать для определения версии MySQL или MariaDB.

Чтобы начать проверку версий базы данных MySQL или MariaDB, выполните следующие действия.

Проверить версию сервера MySQL

MySQL и MariaDB поставляются со встроенным инструментом, который позволяет вам проверять версии сервера. Просто запустите приведенные ниже команды с аргументом -d, чтобы отобразить текущую версию сервера.

mysqld --version

Выполнение приведенной выше команды покажет, какая версия работает на сервере.

MySQL output:

/usr/sbin/mysqld Ver 8.0.23-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))



MariaDB output:

mysqld Ver 10.3.25-MariaDB-0ubuntu0.20.04.1 for debian-linux-gnu on x86_64 (Ubuntu 20.04)

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

mysqladmin -V

Вывод команды выше.

MySQL output:

mysqladmin Ver 8.0.23-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))



MariaDB output:

mysqladmin Ver 9.1 Distrib 10.3.25-MariaDB, for debian-linux-gnu on x86_64

MySQL и MariaDB поставляются с клиентским инструментом, который также должен помочь вам найти версию сервера. Из командной строки вызовите клиентский инструмент, выполнив следующую команду:

sudo mysql

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

Welcome to the MySQL monitor. Commands end with ; or g.

Your MySQL connection id is 9

Server version: 8.0.23-0ubuntu0.20.04.1 (Ubuntu)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

mysql>

Сервер MariaDB выдаст следующее сообщение:

Welcome to the MariaDB monitor. Commands end with ; or g.

Your MariaDB connection id is 49

Server version: 10.3.25-MariaDB-0ubuntu0.20.04.1 Ubuntu 20.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

MariaDB [(none)]>

Или запустите запрос STATUS, чтобы отобразить сведения о сервере, включая номер версии.

mysql> STATUS;

Это должно отобразить вывод ниже:

Connection id: 9

Current database: 

Current user: root@localhost

SSL: Not in use

Current pager: stdout

Using outfile: ''

Using delimiter: ;

Server version: 8.0.23-0ubuntu0.20.04.1 (Ubuntu)

Protocol version: 10

Connection: Localhost via UNIX socket

Server characterset: utf8mb4

Db characterset: utf8mb4

Client characterset: utf8mb4

Conn. characterset: utf8mb4

UNIX socket: /var/run/mysqld/mysqld.sock

Binary data as: Hexadecimal

Uptime: 6 min 54 sec

Threads: 2 Questions: 5 Slow queries: 0 Opens: 117 Flush tables: 3 Open tables: 36 Queries per second avg: 0.012

Этих методов немного, которые помогут вам определить серверную версию MySQL или MariaDB из консоли командной строки.

Использование phpMyAdmin

Если у вас установлен phpMyAdmin, вы также сможете увидеть версию сервера на портале. Войдите в систему и просмотрите сведения о сервере на панели управления.

Использование PHP

Если вы можете загрузить файл в корневой каталог Интернета, просто создайте локальный файл с именем mysqlversion.php . Затем скопируйте и вставьте приведенный ниже код в файл и загрузите его в корневую папку вашего сервера.

<?php



// Create a database connection.

$link = mysqli_connect("localhost", "root", "root_password");



// Print the MySQL version.

echo mysqli_get_server_info($link);



// Close the connection.

mysqli_close($link);

Это отобразит версию вашего сервера.

Могут быть другие способы просмотреть номер версии вашего сервера базы данных в Ubuntu Linux. Однако несколько вышеперечисленных методов должны помочь вам начать работу.

Заключение

В этом посте показано, как узнать номер версии сервера базы данных MySQL или MariaDB в Ubuntu Linux. Если вы обнаружите какую-либо ошибку выше, пожалуйста, используйте форму комментария ниже, чтобы сообщить.



2021-05-12T12:00:25
Вопросы читателей