![[Краткое руководство] по установке Nginx в Ubuntu 18.04 [Краткое руководство] по установке Nginx в Ubuntu 18.04](https://www.digitalocean.com/api/static-content/v1/images?src=%2F_next%2Fstatic%2Fmedia%2Fintro-to-cloud.d49bc5f7.jpeg&width=1920)
Nginx — один из самых популярных в мире веб-серверов, на базе которого размещены некоторые из самых крупных сайтов интернета с огромным трафиком. Обычно он использует ресурсы эффективнее, чем Apache, и может использоваться как веб-сервер или обратный прокси-сервер.
В этом обучающем модуле мы расскажем, как установить Nginx на сервере Ubuntu 18.04. Более подробную версию этого обучающего модуля можно найти в документе Установка Nginx в Ubuntu 18.04.
Для прохождения этого обучающего модуля вам потребуется следующее:
Создав учетную запись, войдите в систему как пользователь без привилегий root.
Поскольку Nginx доступен в хранилищах Ubuntu по умолчанию, вы можете установить его с помощью системы пакетов apt.
Обновите локальный индекс пакетов:
- sudo apt update
 
Установите Nginx:
- sudo apt install nginx
 
Если вы выполнили указания обучающего модуля по предварительной настройке сервера, вы уже активировали брандмауэр 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)
Используйте команду systemd init system, чтобы проверить работу службы:
- 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 вы можете использовать блоки сервера (аналогичные виртуальным хостам в Apache) для инкапсуляции данных конфигурации и размещения на одном сервере нескольких доменов. Мы создадим домен example.com, но вы должны заменить это имя собственным доменным именем. Чтобы узнать больше о настройке доменного имени с помощью DigitalOcean, пройдите наш обучающий модуль Введение в 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:
<html>
    <head>
        <title>Welcome to Example.com!</title>
    </head>
    <body>
        <h1>Success!  The example.com server block is working!</h1>
    </body>
</html>
Сохраните файл и закройте его после завершения.
Создайте новый серверный блок в /etc/nginx/sites-available/example.com:
- sudo nano /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 и удалите символ #, чтобы убрать режим комментариев для строки:
...
http {
    ...
    server_names_hash_bucket_size 64;
    ...
}
...
Проверьте ошибки синтаксиса:
- sudo nginx -t
 
Перезапустите Nginx, чтобы активировать изменения:
- sudo systemctl restart nginx
 
Теперь Nginx должен обслуживать ваше доменное имя. Вы можете проверить это, открыв в браузере адрес http://example.com, после чего должны увидеть примерно следующее:

Теперь вы установили веб-сервер и у вас есть богатые возможности выбора типа обслуживаемого контента и технологий для расширения возможностей пользователя.
Если вы хотите развернуть более сложный набор обслуживания приложений, ознакомьтесь с этой статьей о настройке набора LEMP в Ubuntu 18.04.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
Former Developer at DigitalOcean community. Expertise in areas including Ubuntu, Docker, Ruby on Rails, Debian, and more.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.
Full documentation for every DigitalOcean product.
The Wave has everything you need to know about building a business, from raising funding to marketing your product.
Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.
New accounts only. By submitting your email you agree to our Privacy Policy
Scale up as you grow — whether you're running one virtual machine or ten thousand.
Sign up and get $200 in credit for your first 60 days with DigitalOcean.*
*This promotional offer applies to new accounts only.