Для работы в технологической отрасли как инженер полного стека важно знать конфигурацию Nginx и его основных функций! В этом посте я собираюсь пройти вас все о конфигурации Nginx Как установить, добавить SSL, HTTP 2, GZIP, ..
Просто отправляйтесь на nginx.org и загрузить совместимый исходный код, я буду использовать 1.19.2 или использовать команду ниже, чтобы загрузить его
$ wget http://nginx.org/download/nginx-1.19.2.tar.gz
Извлечение файла
$ tar -zxvf nginx-1.19.2.tar.gz
Измените каталог и проверьте у вас Создание - Основное
Пакет (компилятор C), если не нужно установить его
$ cd nginx-1.19.2 # installing compiler $ sudo apt install build-essential # now check it works $ ./configure
После завершения установки следующая часть — установить некоторые основные зависимости
$ sudo apt install libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev
libpcre3
Библиотека PCRE (Perl) для реализации шаблона регулярного выражения zlib1. g
для Gziping libssl-dev
для SSL, чтобы сделать сертификат самостоятельного знака
Теперь давайте установим сам сервер Nginx, выполните команду ниже с разрешением root, позвольте им пользовательскую настройку полный
# ./configure --sbin-path=/usr/bin/nginx --conf-path=/etc/nginx/nginx.conf \ --error-log-path=/var/log/nginx/err.log --http-log-path=/var/log/nginx/access.log \ --with-pcre --pid-path=/var/run/nginx.pid --with-http_ssl_module --with-http_v2_module
учиться Все о флагах, используемых выше Теперь мы можем компилировать и установить этот источник, запустив следующие команды, используя разрешение root
$ sudo make $ sudo make install
Как только все сделано, запустите сервер nginx
Команда, это работает? Если у вас нет ошибок. Проверьте процесс nginx PS Aux |. Greep Nginx
или голова на http://localhost/ Вы видите это, бум вы сделали это!
Добавление системы SystemD.
Systemd
Позвольте нам некоторые потрясающие функции, такие как запуск, перезапуск, остановитесь, начиная с загрузки, перезагрузки. значит, мы уже знакомы с Systemd.
Так что не нужно запускать каждый раз NGINX -S STOP
… Чтобы настроить SystemD Просто гранируйте код с сайта и сохраните его как /lib/systemd/system/nginx.service
Файл с использованием разрешения root, все равно нужны некоторые изменения в файле, откройте файл /lib/systemd/system/nginx.service
в редакторе и сделайте ниже изменения
[Unit] Description=The NGINX HTTP and reverse proxy server After=syslog.target network-online.target remote-fs.target nss-lookup.target Wants=network-online.target [Service] Type=forking PIDFile=/var/run/nginx.pid ExecStartPre=/usr/bin/nginx -t ExecStart=/usr/bin/nginx ExecReload=/usr/bin/nginx -s reload ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target
Теперь снова сохраните файл и запустите команду Sudo Systemctl Daemon-Reload
Отказ Теперь запустите nginx с помощью команды Systemdd
$ sudo systemctl start nginx
Скачать любой шаблон из здесь сделать демонстрационный сайт. Также сделать каталог с именем /сайты/демонстрация
Использование корневого разрешения
$ sudo mkdir -p /sites/demo
Расстегните загруженный шаблон и скопируйте его на /сайты/демонстрация
Отказ
Откройте файл конфигурации NGINX /etc/nginx/nginx.conf
Используя ваш любимый редактор, удалите весь код из файла и добавьте ниже
worker_processes 1; events { worker_connections 1024; } http { include mime.types; index index.html; server { listen 80; server_name localhost; root /sites/demo; index index.html; } }
Теперь перезагрузите работник NGINX (процесс) по команде, когда вы сделали какие-либо изменения, необходимые для запуска этой команды
$ sudo systemctl reload nginx
и посетить localhost
В вашем браузере вы видели это? Если вы сделали все правильно, вы сможете это увидеть!
Создать новый каталог с именем SSL
под /etc/nginx
Так что это становится /etc/nginx/ssl
, вы помните, что мы установили пакет в начале libssl-dev.
Теперь пришло время принять его на работу. Сначала нам нужно создать сертификат самостоятельного знака, используя openssl
команда
$ sudo openssl req -x509 -days 10 -nodes -newkey rsa:2048 -keyout /etc/nginx/ssl/self.key -out /etc/nginx/ssl/self.crt
Заполните все необходимые входы, как только это сделает. Это даст вам два файла SLOF.CRT
и self.key
под каталогом /et/nginx/SSL
Отказ Чтобы включить его, нам нужно предоставить эти два файла в файл nginx Conf. Откройте /etc/nginx/nginx.conf
файл
worker_processes 1; events { worker_connections 1024; } http { include mime.types; index index.html; gzip on; gzip_comp_level 3; gzip_types text/css; gzip_types text/javascript; server { # adding 443 port, http2 listen 443 ssl http2; server_name localhost; # Adding SSL self-sign certificate ssl_certificate /etc/nginx/ssl/self.crt; ssl_certificate_key /etc/nginx/ssl/self.key; root /sites/demo; index index.php index.html; location ~* \.(css|js|jpg|png)$ { add_header Cache-Control public; add_header Pragma public; add_header Vary Accept-Encoding; expires 1M; } } }
Перезагрузить службу Nginx Sudo Systemctl Перезагрузка Nginx
и посетить https://localhost
и посмотрите список инструментов сети сети через HTTPS, а также HTTP 2 или используйте Curl
чтобы подтвердить
$ curl -Ik -H 'Accept-Encoding: gzip, deflate' https://localhost/lovely.css
gzip on; gzip_comp_level 3; gzip_types text/css; gzip_types text/javascript;
Сначала мы на ГЦмании. Во-вторых, используя уровень сжатия 3, тем более уровень вверх, тем больше ресурсов nginx будет использовать и будет сжиматься до крошечного размера, поэтому лучше сохранить его уровень 4,3. Тип файла CSS и JavaScript будут сжатыми
listen 443 ssl http2; # Adding SSL self-sign certificate ssl_certificate /etc/nginx/ssl/self.crt; ssl_certificate_key /etc/nginx/ssl/self.key;
Мы включаем 443
Порт, овладение
и http2.
Мы уже установили эти зависимости в начале --with-http_ssl_module
и --with-http_v2_module
Отказ Далее мы импортируем сертификат самоисточки и ключ для шифрования запроса
location ~* \.(css|js|jpg|png)$ { add_header Cache-Control public; add_header Pragma public; add_header Vary Accept-Encoding; expires 1M; }
Мы используем здесь Regular Express, чтобы соответствовать пути, если какой-либо запрос сделан в конце с .css
, .js
, .jpg.
и .PNG
. Мы хотели бы добавить дополнительный заголовок, как добавление кеша в браузер для 1 м
один месяц.
Спасибо за чтение, надеюсь, вам понравится и узнал что-то из этого урока.
Мой профиль GitHub: https://github.com/lifeer.
Оригинал: «https://dev.to/hasone/all-about-nginx-configuration-https-ssl-http2-caching-1c0i»