Найти в Дзене
Kamnetanker

Установка и настройка веб-сервера nginx

Требования Чтобы выполнить установку веб-сервера nginx понадобиться: Подготовка В большинстве случаев, например в Ubuntu, установка nginx доступна одной командой, однако, если в вашей поставке дистрибутива нет nginx или он устаревший, а вы хотите самый свежак, то необходимо выполнить следующую подготовку: $ sudo apt-add-repository ppa:nginx/stable // Устанавливаем репозитарий с последними версиями nginx
$ sudo apt update // Обновляем список доступных пакетов
$ sudo apt install nginx // Устанавливаем nginx
$ sudo systemctl enable nginx --now // запускаем nginx, если он по какой-либо причине не запустился самостоятельно. Если возникли проблемы с запуском nginx - посмотрите в файл логов, там, обычно, внятно разъяснено, где вы не правы. Если будет много вопросов по типичным проблемам с установкой, то позже я отредактирую статью с решением всех проблем. Базовая настройка Файл базовой настройки сервера nginx лежит в директории /etc/nginx/sites-available и называется default, примерное его с
Оглавление
Логотип Nginx
Логотип Nginx

Требования

Чтобы выполнить установку веб-сервера nginx понадобиться:

  • Компухтер с GNU/Linux 1 шт. или виртуальная машина с одним из дистрибутивов (с apt'ом, не хочу в yum лезть х)
  • Прямые руки 2 шт. Можно обойтись одной, но рекомендованные системные требования - 2 шт.
  • Умение пользоваться консолью вашего дистрибутива GNU/Linux

Подготовка

В большинстве случаев, например в Ubuntu, установка nginx доступна одной командой, однако, если в вашей поставке дистрибутива нет nginx или он устаревший, а вы хотите самый свежак, то необходимо выполнить следующую подготовку:

$ sudo apt-add-repository ppa:nginx/stable // Устанавливаем репозитарий с последними версиями nginx
$
sudo apt update // Обновляем список доступных пакетов
$
sudo apt install nginx // Устанавливаем nginx
$
sudo systemctl enable nginx --now // запускаем nginx, если он по какой-либо причине не запустился самостоятельно.

Если возникли проблемы с запуском nginx - посмотрите в файл логов, там, обычно, внятно разъяснено, где вы не правы. Если будет много вопросов по типичным проблемам с установкой, то позже я отредактирую статью с решением всех проблем.

Базовая настройка

Файл базовой настройки сервера nginx лежит в директории /etc/nginx/sites-available и называется default, примерное его содержимое представлено ниже(англоязычные комментарии переведены для простоты восприятия):

/etc/nginx/sites-available/default:

# Конфигурация сервера по-умолчанию
server {
# порт и имя сервера, которые будут прослушиваться
listen 80 default_server;
listen [::]:80 default_server;

# SSL конфигурация. Если имеются ssl сертификаты и нужно общаться по https
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;

# Note: Отключите gzip, если используете ssl
# See: https://bugs.debian.org/773332

# Прочитайте про ssl_cipher чтобы быть уверенным в безопасности.
# See: https://bugs.debian.org/765782

# Самоподписные ssl сертификаты были сгененированы ssl-cert пакетом
# Не используйте их в продакшене!

# include snippets/snakeoil.conf;
# Корневая директория для сайта. Может быть любой.
root /var/www/html;

# Приоритет index файлов. Если используется php, то необходимо добавить index.php
index index.html index.htm index.nginx-debian.html;
# Установка имени сервера, по которому nginx будет распознавать к какому серверу принадлежат запросы.
server_name example.com;

location / {
# Первая попытка - обработать как файл, вторая - как директорию, остальное - не найдено.
try_files $uri $uri/ =404;
}
# Переадрессация php скриптов, если установлено
#
location ~ \.php$ {
# include snippets/fastcgi-php.conf;
# # Для php-fpm(или любого другого Unix-сокета)
# fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
# # Для php-cgi или любого другого tcp сокета
# fastcgi_pass 127.0.0.1:9000;
#}

# Запрет на доступ к .htaccess файлам, если nginx работает в одном месте с Apache или проксирует до него запросы
# concurs with nginx's one
# location ~ /\.ht {
#
deny all;
#}
}

Пример конфигурации без комментариев
Вы можете положить этот файл в sites-available и создать символьную ссылку на него в sites-enabled

server {
listen 80;
listen [::]:80;
server_name example.com;
root /var/www/example.com;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}

В приведённом выше примере конфигурации настраивается базовый http сервер с доступом к html файлам (без PHP!), о том, как настроить с PHP поговорим потом)

#nginx #server #сервер #настройка #php #web #socket #url #linux #ubuntu