Настройка NFS Share на Debian
NFS - это сетевая файловая система, которая позволяет компьютерам получать доступ к файлам через компьютерную сеть. Это руководство объясняет, как вы можете выставлять папки через NF
Nginx - это веб-сервер с открытым исходным кодом, разработанный с учетом высокой степени параллелизма, который можно использовать в качестве HTTP / HTTPS-сервера, обратного прокси-сервера, почтового прокси-сервера, программного балансировщика нагрузки, терминатора TLS, сервера кэширования и многого другого!
Это очень модульная часть программного обеспечения. Даже некоторые, казалось бы, «встроенные» части программного обеспечения, такие как GZIP или SSL, фактически создаются как модули, которые можно включать и отключать во время сборки.
Он имеет основные (собственные) модули и сторонние (внешние) модули, созданные сообществом. На данный момент мы можем использовать более ста сторонних модулей.
Написанный на C, это быстрое и легкое программное обеспечение.
Установить Nginx из исходного кода относительно просто - скачайте последнюю версию исходного кода Nginx, настройте, соберите и установите его.
Вам нужно будет выбрать, загружать ли основную версию или стабильную версию, но их создание одинаково.
В этом руководстве мы скомпилируем основную версию Nginx для Debian 10 (buster). Мы будем использовать все доступные модули в версии Nginx с открытым исходным кодом.
Вы, вероятно, спросите, зачем один компилировать Nginx из источника, когда вы можете использовать подготовленные пакеты. Вот несколько причин, почему вы можете захотеть скомпилировать определенное программное обеспечение самостоятельно:
Nginx Open Source доступен в двух версиях:
Nginx имеет два типа модулей, которые вы можете использовать: основные модули и сторонние модули.
Основные разработчики Nginx создают основные модули, и они являются частью самого программного обеспечения.
Сообщество создает сторонние модули, и вы можете использовать их для расширения функциональности. Есть много полезных сторонних модулей.
Статические модули существуют в Nginx с самой первой версии. Динамические модули были представлены с Nginx 1.9.11+ в феврале 2016 года.
В статических модулях набор модулей, составляющих двоичный файл Nginx, фиксируется ./configure
сценарием во время компиляции . Статические модули используют --with-foo_bar_module
или --add-module=PATH
синтаксис.
Чтобы скомпилировать основной (стандартный) модуль как динамический, мы добавим =dynamic
, например --with-http_image_filter_module=dynamic
.
Чтобы скомпилировать сторонний модуль как динамический, мы используем --add-dynamic-module=/path/to/module
синтаксис, а затем загружаем их, используя load_module
директиву в глобальном контексте nginx.conf
файла.
По сравнению с некоторыми другими программами UNIX / Linux, Nginx довольно легкий и не имеет большого количества библиотечных зависимостей. Конфигурация сборки по умолчанию зависит только от 3 устанавливаемых библиотек: OpenSSL / LibreSSL / BoringSSL, Zlib и PCRE.
ПРИМЕЧАНИЕ : Nginx также может быть скомпилирован с использованием криптографических библиотек LibreSSL и BoringSSL вместо OpenSSL.
Проверьте версию Debian.
lsb_release -ds
# Debian GNU/Linux 10 (buster)
Создать обычного пользователя с sudo
доступом.
adduser johndoe --gecos "John Doe"
usermod -aG sudo johndoe
ПРИМЕЧАНИЕ . Замените johndoe
на свое имя пользователя .
Переключиться на нового пользователя.
su - johndoe
Установите часовой пояс.
sudo dpkg-reconfigure tzdata
Обновите программное обеспечение вашей операционной системы.
sudo apt update && sudo apt upgrade -y
Установите необходимые пакеты.
sudo apt install -y software-properties-common ufw
Nginx - это программа, написанная на C, поэтому сначала вам нужно установить инструмент для компиляции. Установить build-essential
, git
и tree
.
sudo apt install -y build-essential git tree
Загрузите последнюю версию основного кода исходного кода Nginx и распакуйте архив исходного кода. Исходный код Nginx распространяется в виде сжатого архива, как и большинство программ Unix и Linux.
wget https://nginx.org/download/nginx-1.17.2.tar.gz && tar zxvf nginx-1.17.2.tar.gz
Загрузите обязательный исходный код зависимостей Nginx и распакуйте его.
# PCRE version 8.43
wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz && tar xzvf pcre-8.43.tar.gz
# zlib version 1.2.11
wget https://www.zlib.net/zlib-1.2.11.tar.gz && tar xzvf zlib-1.2.11.tar.gz
# OpenSSL version 1.1.1c
wget https://www.openssl.org/source/openssl-1.1.1c.tar.gz && tar xzvf openssl-1.1.1c.tar.gz
Установите необязательные зависимости Nginx.
sudo apt install -y perl libperl-dev libgd3 libgd-dev libgeoip1 libgeoip-dev geoip-bin libxml2 libxml2-dev libxslt1.1 libxslt1-dev
Очистить все .tar.gz
файлы. Нам они больше не нужны.
rm -rf *.tar.gz
Введите исходный каталог Nginx.
cd ~/nginx-1.17.2
Для хорошей меры перечислите каталоги и файлы, которые составляют исходный код Nginx tree
.
tree -L 2 .
Скопируйте страницу руководства на /usr/share/man/man8/
.
sudo cp ~/nginx-1.17.2/man/nginx.8 /usr/share/man/man8
sudo gzip /usr/share/man/man8/nginx.8
ls /usr/share/man/man8/ | grep nginx.8.gz
# Check that man page for Nginx is working
man nginx
Для получения справки вы можете просмотреть полный список актуальных опций времени компиляции Nginx, выполнив следующее.
./configure --help
# To see want core modules can be built as dynamic run:
./configure --help | grep -F =dynamic
Сконфигурируйте, скомпилируйте и установите Nginx.
./configure --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 \
--pid-path=/var/run/nginx.pid \
--lock-path=/var/run/nginx.lock \
--user=nginx \
--group=nginx \
--build=Debian \
--builddir=nginx-1.17.2 \
--with-select_module \
--with-poll_module \
--with-threads \
--with-file-aio \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_addition_module \
--with-http_xslt_module=dynamic \
--with-http_image_filter_module=dynamic \
--with-http_geoip_module=dynamic \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_auth_request_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_degradation_module \
--with-http_slice_module \
--with-http_stub_status_module \
--with-http_perl_module=dynamic \
--with-perl_modules_path=/usr/share/perl/5.26.1 \
--with-perl=/usr/bin/perl \
--http-log-path=/var/log/nginx/access.log \
--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 \
--with-mail=dynamic \
--with-mail_ssl_module \
--with-stream=dynamic \
--with-stream_ssl_module \
--with-stream_realip_module \
--with-stream_geoip_module=dynamic \
--with-stream_ssl_preread_module \
--with-compat \
--with-pcre=../pcre-8.43 \
--with-pcre-jit \
--with-zlib=../zlib-1.2.11 \
--with-openssl=../openssl-1.1.1c \
--with-openssl-opt=no-nextprotoneg \
--with-debug
make
sudo make install
После компиляции перейдите в ~
каталог home ( ).
cd ~
Симлинк /usr/lib/nginx/modules
на /etc/nginx/modules
. Это стандартное место для модулей Nginx.
sudo ln -s /usr/lib/nginx/modules /etc/nginx/modules
Распечатайте версию Nginx, версию компилятора и настройте параметры скрипта.
sudo nginx -V
# nginx version: nginx/1.17.2 (Debian)
# built by gcc 8.3.0 (Debian 8.3.0-6)
# built with OpenSSL 1.1.1c 28 May 2019
# TLS SNI support enabled
# configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules . . .
# . . .
# . . .
Создайте системную группу Nginx и пользователя.
sudo adduser --system --home /nonexistent --shell /bin/false --no-create-home --disabled-login --disabled-password --gecos "nginx user" --group nginx
# Check that user and group are created
sudo tail -n 1 /etc/passwd /etc/group /etc/shadow
Проверьте синтаксис Nginx и возможные ошибки.
sudo nginx -t
# Will throw this error -> nginx: [emerg] mkdir() "/var/cache/nginx/client_temp" failed (2: No such file or directory)
# Create NGINX cache directories and set proper permissions
sudo mkdir -p /var/cache/nginx/client_temp /var/cache/nginx/fastcgi_temp /var/cache/nginx/proxy_temp /var/cache/nginx/scgi_temp /var/cache/nginx/uwsgi_temp
sudo chmod 700 /var/cache/nginx/*
sudo chown nginx:root /var/cache/nginx/*
# Re-check syntax and potential errors.
sudo nginx -t
Создайте файл модуля Nginx systemd.
sudo vim /etc/systemd/system/nginx.service
Заполните /etc/systemd/system/nginx.service
файл следующим содержанием.
[Unit]
Description=nginx - high performance web server
Documentation=https://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
[Install]
WantedBy=multi-user.target
Включите Nginx для запуска при загрузке и немедленно запустите Nginx.
sudo systemctl enable nginx.service
sudo systemctl start nginx.service
Проверьте, будет ли Nginx автоматически запускаться после перезагрузки.
sudo systemctl is-enabled nginx.service
# enabled
Проверьте статус.
sudo systemctl status nginx.service
ПРИМЕЧАНИЕ . Чтобы убедиться, что Nginx запущен, перейдите в домен своего веб-сайта или IP-адрес в веб-браузере. Вы увидите страницу приветствия Nginx. Это показатель того, что Nginx запущен на вашем VPS.
Создайте профиль приложения UFW Nginx.
sudo vim /etc/ufw/applications.d/nginx
Скопируйте / вставьте следующее содержимое в /etc/ufw/applications.d/nginx
файл.
[Nginx HTTP]
title=Web Server (Nginx, HTTP)
description=Small, but very powerful and efficient web server
ports=80/tcp
[Nginx HTTPS]
title=Web Server (Nginx, HTTPS)
description=Small, but very powerful and efficient web server
ports=443/tcp
[Nginx Full]
title=Web Server (Nginx, HTTP + HTTPS)
description=Small, but very powerful and efficient web server
ports=80,443/tcp
Убедитесь, что профили приложений UFW созданы и распознаны.
sudo ufw app list
# Available applications:
# Nginx Full
# Nginx HTTP
# Nginx HTTPS
# OpenSSH
Nginx по умолчанию создает .default
файлы резервных копий в /etc/nginx
. Удалить .default
файлы из /etc/nginx
каталога.
sudo rm /etc/nginx/*.default
Поместите подсветку синтаксиса конфигурации Nginx для редактора Vim ~/.vim
.
# For regular non-root user
mkdir ~/.vim/
cp -r ~/nginx-1.17.2/contrib/vim/* ~/.vim/
# For root user
sudo mkdir /root/.vim/
sudo cp -r ~/nginx-1.17.2/contrib/vim/* /root/.vim/
ПРИМЕЧАНИЕ : выполнив описанный выше шаг, вы получите красивую подсветку синтаксиса при редактировании файлов конфигурации Nginx в редакторе Vim.
Создание conf.d
, snippets
, sites-available
и sites-enabled
каталоги /etc/nginx
.
sudo mkdir /etc/nginx/{conf.d,snippets,sites-available,sites-enabled}
Измените права доступа и права владения файлами журналов Nginx.
sudo chmod 640 /var/log/nginx/*
sudo chown nginx:adm /var/log/nginx/access.log /var/log/nginx/error.log
Создайте конфигурацию ротации журналов для Nginx.
sudo vim /etc/logrotate.d/nginx
Заполните файл следующим текстом, затем сохраните и выйдите.
/var/log/nginx/*.log {
daily
missingok
rotate 52
compress
delaycompress
notifempty
create 640 nginx adm
sharedscripts
postrotate
if [ -f /var/run/nginx.pid ]; then
kill -USR1 `cat /var/run/nginx.pid`
fi
endscript
}
Удалить все загруженные файлы из домашнего каталога.
cd ~
rm -rf nginx-1.17.2/ openssl-1.1.1c/ pcre-8.43/ zlib-1.2.11/
Вот и все. Теперь у вас установлена последняя версия Nginx. Он статически скомпилирован с некоторыми важными библиотеками, такими как OpenSSL. Зачастую системная версия OpenSSL устарела. Используя этот метод установки с более новой версией OpenSSL, вы можете воспользоваться современными шифрами, такими CHACHA20_POLY1305
как TLS 1.3, и протоколами, которые доступны в OpenSSL 1.1.1
. Более того, компилируя свой собственный двоичный файл, вы можете адаптировать то, что обеспечит ваш Nginx, что гораздо более гибко, чем установка предварительно собранного двоичного файла.
NFS - это сетевая файловая система, которая позволяет компьютерам получать доступ к файлам через компьютерную сеть. Это руководство объясняет, как вы можете выставлять папки через NF
При настройке нового сервера Linux рекомендуется обновить ядро системы и другие пакеты до последней стабильной версии. В этой статье
Введение В MySQL есть замечательная функция, известная как views. Представления хранятся запросы. Думайте о них как о псевдониме для длинного запроса. В этом руководстве
Эта статья научит вас, как настроить chroot-джейл в Debian. Я предполагаю, что вы используете Debian 7.x. Если вы используете Debian 6 или 8, это может сработать, но
Введение Простой способ настроить VPN-сервер в Debian - это PiVPN. PiVPN - это установщик и оболочка для OpenVPN. Это создает простые команды для вас т
Используете другую систему? Brotli - это новый метод сжатия с лучшей степенью сжатия, чем в Gzip. Его исходный код публично размещен на Github. Thi
Используете другую систему? Apache Cassandra - бесплатная система управления базами данных NoSQL с открытым исходным кодом, разработанная для обеспечения масштабируемости, высокой
Введение Lynis - это бесплатный инструмент для аудита системы с открытым исходным кодом, который используется многими системными администраторами для проверки целостности и защиты своих систем. я
Используете другую систему? InvoicePlane - это бесплатное приложение для выставления счетов с открытым исходным кодом. Его исходный код можно найти в этом хранилище Github. Этот гид
Использ��ете другую систему? Backdrop CMS 1.8.0 - это простая и гибкая, удобная для мобильных устройств, бесплатная система с открытым исходным кодом (CMS), которая позволяет нам
Используете другую систему? Plesk - это проприетарная панель управления веб-хостинга, которая позволяет пользователям управлять своими личными и / или клиентскими веб-сайтами, базами данных.
Используете другую систему? BookStack - это простая, удобная и простая в использовании платформа для организации и хранения информации. BookStack полностью бесплатен и открыт
Используете другую систему? Pagekit 1.0 CMS - это красивая, модульная, расширяемая и легкая, бесплатная и с открытым исходным кодом система управления контентом (CMS) с
Используете другую систему? Subrion 4.1 CMS - это мощная и гибкая система управления контентом с открытым исходным кодом (CMS), которая обеспечивает интуитивно понятный и понятный контент.
Введение Системы Linux поставляются с инструментами мониторинга по умолчанию, такими как top, df и du, которые помогают отслеживать процессы и дисковое пространство. Хотя часто они
Используете другую систему? Firefox Sync - это функция синхронизации браузера, которая позволяет вам делиться своими данными и предпочтениями (такими как закладки, история
Используете другую систему? Октябрь 1.0 CMS - это простая и надежная, бесплатная система управления контентом (CMS) с открытым исходным кодом, построенная на платформе Laravel.
Используете другую систему? X-Cart - чрезвычайно гибкая платформа электронной коммерции с открытым исходным кодом, обладающая множеством функций и интеграций. Исходный код X-Cart доступен
Munin - это инструмент для мониторинга процессов и ресурсов на вашем компьютере, который представляет информацию в виде графиков через веб-интерфейс. Используйте следующее
Используете другую систему? TLS 1.3 - это версия протокола безопасности транспортного уровня (TLS), который был опубликован в 2018 году в качестве предлагаемого стандарта в RFC 8446.
Изучение 26 методов анализа больших данных: часть 1
Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.
Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.
Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.
Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.
CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?
По мере того, как наука развивается быстрыми темпами, принимая на себя большую часть наших усилий, также возрастает риск подвергнуться необъяснимой сингулярности. Прочтите, что может значить для нас необычность.
Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!
Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.
Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше