Те, кто работает с конечными точками и исполняемыми серверами, могут иногда заметить, что конкретная задача не требует загрузки серверной части. Примерами этого являются рендеринг HTML-шаблонов (для статических возвратов) и базовая передача текста без разметки. Но в этом случае использование высокопроизводительного балансировщика нагрузки, такого как Nginx, может заставить вас ломать голову над конфигурацией. Мой хороший друг, который впервые упомянул об этом мне, был прав, так как быстрый поиск в Google дает результаты, которые почти все не имеют отношения к конечной цели:

Обслуживание статических файлов

Это понятно, так как настройка Nginx для обслуживания статических файлов очень похожа на настройку конечным пользователем Apache для их обслуживания. К счастью, в наши дни Nginx довольно надежен (хотя он может быть довольно громоздким), и настроить стандартный сервер Ubuntu для обслуживания статических файлов на самом деле очень просто. Итак, без лишних слов, мы развернем мой статический сайт-портфолио по адресу http://emmettboudreau.com/.

Последние 10 лет Ubuntu доминирует на рынке серверов. Это также не зря, потому что Ubuntu имеет много преимуществ, когда дело доходит до первого таймера, в том числе:

  • Огромная база пользователей, много доступной информации.
  • Надежный менеджер пакетов (Apt)
  • Легко настраиваемый брандмауэр (ufw)
  • PPA — для добавления исходников в ваши репозитории. (/etc/apt/sources.list)

Это потрясающе, и сделает настройку нашего сервера невероятно простой. Шаг первый — подключиться к SSH как root, и для этого вам понадобится ваш IP-адрес. адрес. Нам нужно открыть наш терминал или SSH-клиент (например, PuTTy) и ввести

ssh [email protected]

Конечно, я буду вводить наш адрес IPV4, а не эти случайные числа. Теперь введите наш пароль суперпользователя, и мы официально вошли в систему и готовы. Теперь давайте создадим пользователя для входа:

adduser username

Теперь, когда мы добавили нового пользователя, мы можем добавить его в список sudo-ers:

usermod -aG sudo username

Теперь, когда мы закончили с этим, мы просто набираем

авторизоваться

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

Теперь мы можем перейти к установке Nginx. На самом деле я обычно не использую ничего, кроме Nginx, и вам советую этого не делать; Nginx действительно хорошо спроектирован, и за ним стоит более 10 лет работы. Конфигурация проста, серверы быстрые, и это определенно стоит вашего времени. Как и почти все, что вы устанавливаете в Ubuntu, мы будем использовать Apt для его установки:

sudo apt-get install nginx

Это создаст много файлов в каталоге /etc/nginx. Первым шагом будет отсоединение или удаление конфигурации по умолчанию с помощью соответствующих команд.

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

Теперь откройте здесь текстовый файл nano с помощью GNU Nano, если у вас нет Nano, вы можете получить его через Apt:

sudo apt-get install nano

Откройте файл по адресу:

/etc/nginx/conf.d/yourwebsite.conf

Вы можете сделать это с помощью этой команды:

nano /etc/nginx/conf.d/yourwebsitename.conf

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

server {
    listen         80;
    listen         [::]:80;
    server_name    emmettboudreau.com www.emmettboudreau.com;
    root           /var/www/emmettboudreau.com;
    index          index.html;

    gzip             on;
    gzip_comp_level  3;
    gzip_types       text/plain text/css application/javascript image/*;
}

(Используйте ctrl + o, затем y, затем ctrl + x, чтобы написать и выйти.)

Теперь создайте новый каталог с URI, который вы указали в корневом каталоге конфигурации в файле конфигурации.

mkdir /var/www/emmettboudreau.com

Найдите способ получить туда свои файлы, будь то FTP, SCP или даже Git. Убедитесь, что ваш основной файл соответствует индексной части вашего файла конфигурации.

Параметр server { listen позволяет изменить порт, на котором wsgi ищет коннекторы. Другими словами, если бы мы подключались к серверу через приложение, отличное от веб-браузера, например видеоигру, мы бы прослушивали любой порт, через который мы хотели бы подключить сервер. Поскольку это веб-приложение, клиентская сторона всегда будет веб-браузером, и с учетом этого мы можем сохранить порт 80.

Gzip — это кодировщик, который обрабатывает алгоритмы сжатия и распаковки, которые часто требуются серверной части для быстрой передачи кучи данных. Потому что для того, чтобы эти данные можно было интерпретировать, их сначала нужно получить и выполнить. Если вы используете Google Chrome, вполне вероятно, что серверной частью, компилирующей ваши веб-страницы, является Gumbo. Gumbo — довольно почтенный фон, и весь Интернет, кажется, присматривается к нему как к универсальному стандарту (поэтому каждый браузер стал Chrome).

Со всем этим нам нужно перезагрузить nginx либо с помощью службы, либо просто с помощью команды reload:

nginx -s reload
sudo service nginx reload

И это должно сработать, теперь у нас есть работающий веб-сервер, обслуживающий статические файлы для всех в галактике!