Рубрики
Uncategorized

Все о конфигурации Nginx, HTTPS / SSL, http2, Кэширование

Узнайте конфигурацию Nginx, установка, добавление HTTPS / SSL, https2. Теги с DevOps, Showdev, Nginx, Ubuntu.

Для работы в технологической отрасли как инженер полного стека важно знать конфигурацию 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»