Hello, Nginx!

Как установить Nginx на Ubuntu: пошаговая инструкция

Nginx — это один из самых востребованных веб-серверов с открытым исходным кодом. Зачастую он используется как веб-сервер, обратный или почтовый прокси-сервер.

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

Установка Nginx

Для установки сервера Nginx понадобится локальная машина либо облачный сервер с установленной операционной системой Ubuntu. Программа доступна в официальных репозиториях Ubuntu по умолчанию. Установить её можно непосредственно из них, используя систему управления пакетами apt .

sudo systemctl enable nginx
  1. Теперь нужно проверить, что веб-сервер успешно установлен и работает, а также добавлен в автозагрузку. Проверим статус работы веб-сервера:
sudo service nginx status

Строка «Active: active (running). » указывает на успешную работу сервера. Есть и другой способ проверить его работу. Нужно вставить IP-адрес сервера в адресную строку браузера. Если результат будет таким же, как на картинке ниже, то веб-сервер работает успешно.

sudo systemctl is-enabled nginx

Если в ответ на выполненную команду получаем «enabled», значит веб-сервер добавлен в автозагрузки.

Для работы с установленным веб-сервером пригодятся базовые команды управления. Они приведены в таблице ниже.

sudo systemctl start nginx

sudo systemctl stop nginx

sudo systemctl restart nginx

sudo systemctl reload nginx

Проверка состояния службы

sudo systemctl status nginx

Настройка брандмауэра

Установка и настройка брандмауэра позволит закрыть все порты, кроме необходимых нам — 22 (SSH), 80 (HTTP), 443 (HTTPS). Первый протокол необходим для подключения к удаленному серверу. Второй и третий необходим для связи между клиентом и сайтом. Главное их отличие в том, что HTTPS — это зашифрованный HTTP. Шифрование данных происходит благодаря SSL-сертификату.

После успешной установки добавим веб-сервер в список доступных приложений брандмауэра:

sudo nano /etc/ufw/applications.d/nginx.ini

Заполним файл следующим образом:

[Nginx HTTP]
title=Web Server
description=Enable NGINX HTTP traffic
ports=80/tcp

[Nginx HTTPS] \
title=Web Server (HTTPS) \
description=Enable NGINX HTTPS traffic
ports=443/tcp

[Nginx Full]
title=Web Server (HTTP,HTTPS)
description=Enable NGINX HTTP and HTTPS traffic
ports=80,443/tcp

Проверим список доступных приложений:

Если среди них есть веб-сервер, значит всё сделано верно. Теперь нужно запустить брандмауэр и разрешить передачу трафика по вышеуказанным портам:

sudo ufw enable
sudo ufw allow 'Nginx Full'
sudo ufw allow 'OpenSSH'

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

Читайте также:  Astra linux mac адрес

Если всё сделано правильно, то в статусе будут перечислены все порты, которые нам необходимы.

Настройка Nginx

Администрирование веб-сервера представляет из себя изменение и поддержку конфигурационных файлов. Среди них 1 файл конфигурации и 2 каталога. Это nginx.conf , sites-available и sites-enabled соответственно. Все они лежат в директории /etc/nginx .

Файл nginx.conf — это главный конфигурационный файл. Каталог sites-available содержит файлы конфигураций виртуальных хостов. Каждый отдельный файл хранит информацию об определенном сайте. Это его имя, IP-адрес и другие данные. Каталог sites-enabled , в свою очередь, состоит только из конфигураций активных сайтов. Только из директории sites-enabled читаются файлы конфигурации для виртуальных хостов. Также в ней хранятся ссылки на sites-available . Такая структура позволяет временно отключать сайты без потери их конфигураций.

Рассмотрим более детально главный файл конфигурации. Для этого откроем его для просмотра, используя редактор:

sudo nano /etc/nginx/nginx.conf

После выполнения команды откроется файл, разделенный на модули. По умолчанию он выглядит так, как показано на рисунке ниже:

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

Перечислим некоторую часть директив главного конфигурационного файла:

  • user — это пользователь, от которого осуществляются все рабочие процессы.
  • worker_processes — число рабочих процессов сервера. Оно должно быть не больше, чем количество ядер процессора. Параметр auto установит число автоматически.
  • pid — файл с номером главного процесса.
  • include — отвечает за подключение иных файлов конфигурации, удовлетворяющих заданной маске.
  • events — контекст, состоящий из директив, влияющих на работу сетевого соединения.
    • worker_connections — максимальное число одновременно работающих соединений одного рабочего процесса.
    • multi_accept — флаг, который может быть как включен (on), так и выключен (off). Если он включен, то рабочий процесс будет принимать все новые соединения, иначе только одно.
    • use — указывает метод обработки соединений. По умолчанию сервер выбирает наиболее подходящий и эффективный.
    • sendfile — включает (on) или отключает (off) метод отправки данных sendfile().
    • tcp_nopush , tcp_nodelay — параметры, влияющие на производительность. Первый заставляет сервер отправлять заголовки HTTP-ответов одним пакетом, а второй позволяет не буферизировать данные и отправлять их короткими очередями.
    • keepalive_timeout — параметр, отвечающий за время ожидания keep-alive соединения до его разрыва со стороны сервера.
    • keepalive_requests — максимальное число запросов по одному keep-alive соединению.
    • error_log — лог ошибок веб-сервера. Для сбора ошибок в определенной секции (http, server и т.д.) необходимо разместить директиву внутри нее.
    • gzip — сжатие контента.

    Настройка виртуальных хостов

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

    sudo mkdir -p /var/www/testsite.dev/html

    После добавим индексный файл:

    sudo nano /var/www/testsite.dev/html/index.html

    Заполним его минимальными данными для отображения сайта:

    После создадим конфигурационный файл сайта в папке sites-available :

    sudo nano /etc/nginx/sites-available/testsite.dev.conf

    Заполним его простейшей конфигурацией:

    server listen 80; 
    listen [::]:80;

    server_name testsite.dev www.testsite.dev;
    root /var/www/testsite.dev/html;
    index index.html index.xml;
    >

    Последнее, что осталось сделать, — это создать ссылку в директории sites-enabled на конфигурацию сайта testsite.dev, чтобы добавить его из доступных во включенные:

    sudo ln -s /etc/nginx/sites-available/testsite.dev.conf /etc/nginx/sites-enabled/

    После создания виртуального хоста проведем тестирование конфигурации:

    Отключим сайт по умолчанию, удалив запись о дефолтном виртуальном хосте:

    sudo rm /etc/nginx/sites-enabled/default

    Стоит уточнить, что после того, как мы отключим сайт по умолчанию, Nginx будет использовать первый встреченный серверный блок в качестве резервного сайта (то есть по IP-адресу сервера будет открываться самый первый сайт из конфигурации Nginx).

    sudo systemctl restart nginx

    Проверим, что всё было сделано верно и сайт работает. Для этого можно вставить IP-адрес сервера или домен, если он зарегистрирован, в адресную строку браузера:

    Другой вариант — воспользоваться командой curl :

    Заключение

    В данной статье мы разобрали процесс установки Nginx на Linux , а именно на дистрибутив Ubuntu. С помощью этой инструкции можно провести базовую настройку веб-сервера и развернуть на нем свой первый сайт. Кроме этого, сервер подготовлен к переходу на зашифрованный протокол данных. Для этого нужно получить SSL-сертификат и настроить переадресацию с HTTP-протокола на HTTPS. Для настройки защищенного соединения вам будет необходимо сертификат SSL — заказать его можно в панели управления в разделе « SSL-сертификаты ».

    Источник

    Install and configure Nginx

    Nginx (pronounced as “Engine-X”) is an open source web server that is often used as reverse proxy or HTTP cache. It is available for Linux for free.

    In this tutorial we’ll install Nginx and set up a basic site.

    What you’ll learn

    What you’ll need

    Originally authored by Marcin Mikołajczak

    2. Installing Nginx

    To install Nginx, use following command:

    sudo apt update sudo apt install nginx 

    After installing it, you already have everything you need.

    You can point your browser to your server IP address. You should see this page:

    Welcome to nginx

    If you see this page, you have successfully installed Nginx on your web server.

    3. Creating our own website

    Default page is placed in /var/www/html/ location. You can place your static pages here, or use virtual host and place it other location.

    Virtual host is a method of hosting multiple domain names on the same server.

    Let’s create simple HTML page in /var/www/tutorial/ (it can be anything you want). Create index.html file in this location.

    cd /var/www sudo mkdir tutorial cd tutorial sudo "$" index.html 

    Paste the following to the index.html file:

          

    Hello, Nginx!

    We have just configured our Nginx web server on Ubuntu Server!

    Save this file. In next step we are going to set up virtual host to make Nginx use pages from this location.

    4. Setting up virtual host

    To set up virtual host, we need to create file in /etc/nginx/sites-enabled/ directory.

    For this tutorial, we will make our site available on 81 port, not the standard 80 port. You can change it if you would like to.

    cd /etc/nginx/sites-enabled sudo "$" tutorial 

    root is a directory where we have placed our .html file. index is used to specify file available when visiting root directory of site. server_name can be anything you want, because you aren’t pointing it to any real domain by now.

    5. Activating virtual host and testing results

    To make our site working, simply restart Nginx service.

    sudo service nginx restart 

    Let’s check if everything works as it should. Open our newly created site in web browser. Remember that we used :81 port.

    Final

    Congratulations! Everything works as it should. We have just configured Nginx web server.

    6. That’s all!

    I hope that this tutorial explained you the basics of working with Nginx. Of course, it’s much more powerful tool. You can find more in official resources, available on Nginx site.

    If you need more guidance on using Nginx, help is always at hand:

    Further reading:

    Источник

Оцените статью
Adblock
detector