Как установить Nginx на Ubuntu 18.04 [Быстрый старт]

Вступление

Nginx является одним из самых популярных веб-серверов в мире и отвечает за размещение некоторых из самых крупных сайтов с наибольшим трафиком в Интернете. В большинстве случаев он более дружественен к ресурсам, чем Apache, и его можно использовать в качестве веб-сервера или обратного прокси-сервера.

В этом руководстве мы объясним, как установить Nginx на ваш сервер Ubuntu 18.04. Более подробную версию этого руководства см. ВHow To Install Nginx on Ubuntu 18.04.

Предпосылки

Прежде чем начать это руководство, у вас должно быть следующее:

  • Сервер Ubuntu 18.04 и обычный пользователь без полномочий root с привилегиями sudo. Кроме того, вам нужно будет включить базовый брандмауэр для блокировки несущественных портов. Вы можете узнать, как настроить учетную запись обычного пользователя и установить брандмауэр, следуя нашимinitial server setup guide for Ubuntu 18.04.

Если у вас есть доступная учетная запись, войдите в систему как пользователь без полномочий root, чтобы начать.

[[step-1 -–- install-nginx]] == Шаг 1. Установка Nginx

Поскольку Nginx доступен в репозиториях Ubuntu по умолчанию, вы можете установить его с помощью системы упаковкиapt.

Обновите локальный индекс пакета:

sudo apt update

Установите Nginx:

sudo apt install nginx

[[step-2 -–- adjust-the-firewall]] == Шаг 2 - Настройка брандмауэра

Если вы выполнили обязательное руководство по настройке сервера, то у вас включен брандмауэр UFW. Проверьте доступные профили приложенияufw с помощью следующей команды:

sudo ufw app list
OutputAvailable applications:
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  OpenSSH

Давайте включим профиль с максимальным ограничением, который по-прежнему будет разрешать трафик, который вы настроили, разрешая трафик на порт80:

sudo ufw allow 'Nginx HTTP'

Проверьте изменение:

sudo ufw status
OutputStatus: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
Nginx HTTP                 ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
Nginx HTTP (v6)            ALLOW       Anywhere (v6)

[[step-3 -–- verify-your-web-server]] == Шаг 3 - Проверка вашего веб-сервера

Проверьте систему инициализацииsystemd, чтобы убедиться, что служба запущена, набрав:

systemctl status nginx
Output● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2018-04-20 16:08:19 UTC; 3 days ago
     Docs: man:nginx(8)
 Main PID: 2369 (nginx)
    Tasks: 2 (limit: 1153)
   CGroup: /system.slice/nginx.service
           ├─2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
           └─2380 nginx: worker process

Откройте целевую страницу Nginx по умолчанию, чтобы убедиться, что программное обеспечение работает правильно по вашему IP-адресу:

http://your_server_ip

Вы должны увидеть целевую страницу Nginx по умолчанию:

Nginx default page

[[step-4 -–- setting-up-server-blocks-Recommended]] == Шаг 4 - Настройка серверных блоков (рекомендуется)

При использовании веб-сервера Nginx вы можете использоватьserver blocks (аналогично виртуальным хостам в Apache) для инкапсуляции деталей конфигурации и размещения более одного домена с одного сервера. Мы создадим домен под названиемexample.com, но вы должныreplace this with your own domain name. Чтобы узнать больше о настройке доменного имени в DigitalOcean, см. Нашintroduction to DigitalOcean DNS.

Создайте каталог дляexample.com, используя флаг-p для создания любых необходимых родительских каталогов:

sudo mkdir -p /var/www/example.com/html

Назначить владельца каталога:

sudo chown -R $USER:$USER /var/www/example.com/html

Разрешения ваших корневых веб-сайтов должны быть правильными, если вы не изменяли значениеumask, но вы можете убедиться, набрав:

sudo chmod -R 755 /var/www/example.com

Создайте образец страницыindex.html с помощьюnano или вашего любимого редактора:

nano /var/www/example.com/html/index.html

Внутри добавьте следующий образец HTML:

/var/www/example.com/html/index.html


    
        Welcome to Example.com!
    
    
        

Success! The example.com server block is working!

Сохраните и закройте файл, когда вы закончите.

Создайте новый серверный блок в/etc/nginx/sites-available/example.com:

sudo nano /etc/nginx/sites-available/example.com

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

/etc/nginx/sites-available/example.com

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

        root /var/www/example.com/html;
        index index.html index.htm index.nginx-debian.html;

        server_name example.com www.example.com;

        location / {
                try_files $uri $uri/ =404;
        }
}

Сохраните и закройте файл, когда вы закончите.

Включите файл, создав из него ссылку на каталогsites-enabled:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

Два серверных блока теперь включены и настроены для ответа на запросы на основе их директивlisten иserver_name:

  • example.com: ответит на запросыexample.com иwww.example.com.

  • default: ответит на любые запросы порта80, которые не соответствуют двум другим блокам.

Чтобы избежать возможной проблемы с памятью хеш-ведра, которая может возникнуть из-за добавления дополнительных имен серверов, необходимо настроить одно значение в файле/etc/nginx/nginx.conf. Откройте файл:

sudo nano /etc/nginx/nginx.conf

Найдите директивуserver_names_hash_bucket_size и удалите символ#, чтобы раскомментировать строку:

/etc/nginx/nginx.conf

...
http {
    ...
    server_names_hash_bucket_size 64;
    ...
}
...

Проверка на синтаксические ошибки:

sudo nginx -t

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

sudo systemctl restart nginx

Nginx теперь должен обслуживать ваше доменное имя. Вы можете проверить это, перейдя кhttp://example.com, где вы должны увидеть что-то вроде этого:

Nginx first server block

Заключение

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

Если вы хотите создать более полный стек приложений, ознакомьтесь с этой статьей оhow to configure a LEMP stack on Ubuntu 18.04.

Related