Вместе с certbot
Чтобы включить подмножество языка JavaScript njs
вместе с Nginx, мы можем установить его из исходного кода. В этом руководстве я предоставлю информацию об этой настройке для Ubuntu 20.04.1 LTS.
Сначала проверьте страницу загрузок здесь последней стабильной версии: http://nginx.org/en/download.html
Мы будем загружать версию 1.18.0, что можно сделать с помощью:
$ cd ~ $ wget http://nginx.org/download/nginx-1.18.0.tar.gz $ tar -zxvf nginx-1.18.0.tar.gz
Подготовка системы
Убедитесь, что на вашем хост-компьютере установлена последняя версия, и установите некоторые необходимые пакеты:
$ sudo apt-get update $ sudo apt-get install build-essential $ sudo apt-get install libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev
Если вы уже установили Nginx через apt-get, обязательно удалите его перед установкой из источника:
$ sudo apt-get remove nginx nginx-common
Модуль JavaScript
Затем мы загрузим mercurial
, чтобы получить исходный код для модуля njs
(ngx_http_js_module).
$ sudo apt-get install mercurial
Теперь клонируйте код модуля njs
, настройте и запустите make
.
$ cd ~ $ hg clone http://hg.nginx.org/njs $ cd njs $ sudo ./configure $ sudo make
Установить Nginx
Теперь хост-компьютер готов к установке Nginx из исходников. Перейдите в каталог загрузки и настройте установку.
$ cd ~/nginx-1.18.0
Чтобы увидеть параметры модулей, которые могут быть включены при настройке, используйте параметр help
:
$ ./configure --help
Я собираюсь включить в свою установку следующие модули / библиотеки:
- Библиотека PCRE
- ngx_http_ssl_module
- ngx_http_v2_module
- ngx_http_auth_request_module
- ngx_http_js_module
Последняя команда настройки выглядит так:
$ ./configure --sbin-path=/usr/bin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-pcre --pid-path=/var/run/nginx.pid --with-http_ssl_module --with-http_auth_request_module --modules-path=/usr/local/nginx/modules --with-http_v2_module --add-module=$HOME/njs/nginx
Обратите внимание, что я включаю ngx_http_js_module
, используя параметр --add-module
, что означает, что он не будет установлен как динамический модуль. Это также означает, что директиву load_module modules/ngx_http_js_module.so
не нужно использовать в моем файле конфигурации nginx.
После успешного завершения настройки запустите make
и install
:
$ sudo make $ sudo make install
Наконец, убедитесь, что nginx установлен правильно, и запустите его:
$ which nginx /usr/bin/nginx $ sudo nginx
Вы можете запустить $ ps aux | grep nginx
, чтобы убедиться, что главный и рабочий процессы запущены. Вот и все!
Бонус: установить Certbot
Инструкции по установке certbot можно найти на сайте certbot.eff.org. Более конкретно, для ubuntu проверьте здесь: https://certbot.eff.org/lets-encrypt/ubuntufocal-nginx
В качестве краткого справочника вот список команд из их руководства, которые я обычно использую для установки certbot:
$ sudo snap install core; sudo snap refresh core $ apt-get remove certbot $ sudo snap install --classic certbot $ sudo ln -s /snap/bin/certbot /usr/bin/certbot