server { listen 80 default_server; listen [::]:80 default_server; listen 443 ssl default_server; listen [::]:443 ssl default_server; ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/server.key; root /var/www/html; # Add index.php to the list if you are using PHP index index.html index.htm index.nginx-debian.html; server_name site.local; location / { index webpage.html try_files $uri $uri/ =404; }}
К слову, /etc/nginx/sites-enabled/default→/etc/nginx/sites-available/default
Всё, что находится внутри {} директивы server - конфиги сервера.
listen-ы устанавливают порты, которые будет сервер слушать (через которые будет доступен сервер). Сначала идет конфиг IPv4, а потом IPv6.
ssl_certificate и ssl_certificate_key в данном случае используются для обозначения пути к ssl сертификату и ключу.
root указывает путь к директории с html файлами.
index index.html index.htm index.nginx-debian.html
Директива index определяет список файлов-индексов в порядке приоритета, которые будут использоваться, если в URL не указано имя конкретного файла. Список идет от более приоритетного к менее приоритетному, то есть, если не будет найден первый индекс-файл, то будет искаться второй и т.д.
server_name указывает доменное имя, которое будет обслуживаться сервером. По дефолту стоит значение _ (underscore) , что означает “любой домен”.
В блоке location есть параметр index, который указывает индексную (начальную) страницу в директории, указанной после параметра root выше.
Там же есть try_files, который ищет index page; если не находит - возвращает ошибку “404 Not Found”.
Подтягивание конфигов
После применения настроек нужно выполнить:
systemctl reload nginx
reload нужен как раз для подтягивания конфигов, чтобы не restart-ить nginx лишний раз. Ибо restart сервера - сбой.
Проверить конфиги на ошибки можно командой:
nginx -t
Создание приватного ключа и SSL сертификата для HTTPS