Nginx сервер за 5 минут.

Допустим у вас есть компьютер, сервер, маленькая raspberry Pi, да что угодно, на чем можно запустить минимальный образ linux-подобной системы. Если просто обратиться к ней по ip, она ответит отказом в соединении и на этом все. Но вы хотите чтоб это превратилось в веб-сервер. Есть Nginx - маленький веб-сервер весом ~20MB, почти не загружающий процессор, и способен тянуть 10.000 соединений потребляя ~2.5MB памяти. Когда проектирую сервер, нагрузку nginx вообще считают статистической погрешностью.

Процесс такой: - Устанавливаете Nginx - Настраиваете конфиг для сайта - Пробрасываете порт от роутера/коммутатора на ip компьютера.

Теперь подробнее: Установка в linux sudo apt install nginx Запуск как системная служба sudo systemctl start nginx sudo systemctl enable nginx Файл с общими настройками /etc/nginx/nginx.conf - Содержит глобальные настройки (количество рабочих процессов, логи, подключение других конфигов) Конфиги сайтов (хостов): /etc/nginx/sites-available/ — Папка-черновик. Здесь вы настраиваете сайты, но они еще не запустятся. /etc/nginx/sites-enabled/ — Prod-папка. Здесь вы настраиваете символическую ссылку sudo ln -s /etc/nginx/sites-available/my-site.conf /etc/nginx/sites-enabled/ и ваш сайт будет доступен после перезагрузки сервера. Минимальный конфиг server { listen 80; server_name localhost; # Сюда можно вписать IP или домен

root /var/www/test-site; # Путь к папке с вашим index.html index index.html;

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

Проверка на верность конфигов sudo nginx -t Перезагрузка без прерывания работы sudo nginx -s reload Перезагрузка если запущена как служба sudo systemctl reload nginx

Если получили 403 ошибку при открытии сайта Nginx обычно работает от пользователя www-data. У него должен быть доступ на чтение и выполнение (+x) ко всей цепочке папок до вашего сайта. Даем права владельца (рекомендуется) sudo chown -R www-data:www-data /var/www/test-site Убеждаемся, что права на чтение установлены sudo chmod -R 755 /var/www/test-site

Если нужные SSL сертификаты и http/2 Локальная подпись для разработки sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt # Для реального домена (бесплатно) sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d test-site.com

Расширенный конфиг с настройками ssl и http/2 в телеграмм канале t.me/taranweb Тут страдание текст форматировать…