Как установить программу управления проектами Redmine на Debian 11

Redmine — это бесплатное программное обеспечение для управления проектами с открытым исходным кодом и инструмент отслеживания проблем. Он написан с использованием фреймворка Ruby on Rails и может быть интегрирован с различными системами контроля версий. В нем есть браузер репозиториев и программа просмотра различий. С его помощью можно управлять функциями проектов, включая проектные вики и форумы, отслеживать время и управлять доступом на основе ролей. Он кроссплатформенный, кроссбазовый и поддерживает 49 языков.

В этом руководстве вы узнаете, как установить Redmine на сервер Debian 11.

Предварительные условия

  • Сервер под управлением Debian 11.
  • Пользователь, не являющийся пользователем с правами root.
  • Uncomplicated Firewall(UFW) включен и работает.
  • Несколько пакетов, необходимых вашей системе.
    $ sudo apt install wget curl nano software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release unzip debian-archive-keyring -y
    

    Некоторые из этих пакетов могут быть уже установлены в вашей системе.

  • Убедитесь, что все обновлено.
    $ sudo apt update && sudo apt upgrade
    

Шаг 1 — Настройка брандмауэра

Первым шагом перед установкой любых пакетов является настройка брандмауэра на разрешение HTTP и HTTPS соединений.

Проверьте состояние брандмауэра.

$ sudo ufw status

Вы должны увидеть что-то вроде следующего.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

Разрешите порты HTTP и HTTPs. Также откройте порт 3000 для Redmine.

$ sudo ufw allow http
$ sudo ufw allow https
$ sudo ufw allow 3000

Проверьте статус еще раз для подтверждения.

$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
80/tcp                     ALLOW       Anywhere                  
443                        ALLOW       Anywhere                  
3000                       ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
80/tcp (v6)                ALLOW       Anywhere (v6)             
443 (v6)                   ALLOW       Anywhere (v6)             
3000 (v6)                  ALLOW       Anywhere (v6)

Шаг 2 — Установите сервер Apache

Для развертывания Redmine мы будем использовать веб-сервер Apache. Установите Apache с помощью следующей команды.

$ sudo apt install apache2

Проверьте состояние службы Apache.

$ sudo systemctl status apache2
? apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2023-03-04 13:28:57 UTC; 41s ago
       Docs: https://httpd.apache.org/docs/2.4/
   Main PID: 3478 (apache2)
      Tasks: 55 (limit: 1129)
     Memory: 9.7M
        CPU: 27ms
     CGroup: /system.slice/apache2.service
             ??3478 /usr/sbin/apache2 -k start
             ??3481 /usr/sbin/apache2 -k start
             ??3482 /usr/sbin/apache2 -k start

Mar 04 13:28:56 redmine systemd[1]: Starting The Apache HTTP Server...
Mar 04 13:28:57 redmine systemd[1]: Started The Apache HTTP Server.

Шаг 3 — Установка и настройка сервера MySQL

Мы будем использовать базу данных MySQL для хранения данных. Debian больше не содержит MySQL в своих репозиториях. Поэтому для установки мы будем использовать официальный репозиторий MySQL.

Импортируйте GPG-ключ MySQL.

$ curl https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 | gpg --dearmor | sudo tee /usr/share/keyrings/mysql.gpg >/dev/null

Создайте файл репозитория MySQL.

$ echo "deb [signed-by=/usr/share/keyrings/mysql.gpg arch=amd64] http://repo.mysql.com/apt/debian/ `lsb_release -cs` mysql-8.0" | sudo tee /etc/apt/sources.list.d/mysql.list

Обновите список системных репозиториев.

$ sudo apt update

Установите MySQL.

$ sudo apt install mysql-server

Вам будет предложено установить пароль root. Выберите надежный пароль. Далее вам будет предложено выбрать между новыми версиями MySQL caching_sha2_password шифрованием или более старым mysql_native_password шифрование. Выберите более новый вариант, поскольку Redmine его поддерживает. Выберите OK, чтобы продолжить и завершить установку.

Проверьте состояние службы MySQL.

$ sudo systemctl status mysql
? mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2023-03-05 08:18:15 UTC; 4h 14min ago
       Docs: man:mysqld(8)
             http://dev.mysql.com/doc/refman/en/using-systemd.html
   Main PID: 10500 (mysqld)
     Status: "Server is operational"
      Tasks: 38 (limit: 1129)
     Memory: 391.5M
        CPU: 1min 49.904s
     CGroup: /system.slice/mysql.service
             ??10500 /usr/sbin/mysqld

Mar 05 08:18:14 redmine systemd[1]: Starting MySQL Community Server...
Mar 05 08:18:15 redmine systemd[1]: Started MySQL Community Server.

Безопасная установка MySQL.

$ sudo mysql_secure_installation

Сначала вас попросят ввести пароль root. Введите пароль, который вы выбрали во время установки. Далее вас спросят, хотите ли вы установить плагин Validate Password Plugin, который можно использовать для проверки надежности пароля MySQL. Выберите Y , чтобы продолжить. На следующем шаге вам будет предложено выбрать уровень проверки пароля. Выберите 2 , который является самым сильным уровнем и требует, чтобы ваш пароль состоял не менее чем из восьми символов и включал в себя сочетание прописных, строчных, цифровых и специальных символов.

Securing the MySQL server deployment.

Enter password for user root:

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: Y

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2

Вам будет показана надежность вашего пароля root, и вас спросят, хотите ли вы его изменить. Введите N если вы не хотите менять пароль, и продолжите работу. Если вы хотите изменить его, вы можете сделать это сейчас, введя Y и выбрав пароль, удовлетворяющий приведенным выше требованиям.

Using existing password for root.

Estimated strength of the password: 100 
Change the password for root ? ((Press y|Y for Yes, any other key for No) : N

 ... skipping.

Нажмите Y , а затем ENTER ключ для всех следующих подсказок, чтобы удалить анонимных пользователей и тестовую базу данных, отключить логины root и загрузить только что установленные правила.

By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Success.


Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Success.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.


Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
 - Dropping test database...
Success.

 - Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y
Success.

All done!

Войдите в оболочку MySQL. Для продолжения введите пароль root.

$ mysql -u root -p

Создать redmine пользователя. Убедитесь, что пароль соответствует требованиям, установленным ранее.

mysql> CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'Your_password2';

Создать redmine база данных.

mysql> CREATE DATABASE redmine CHARACTER SET utf8mb4;

Предоставьте привилегии пользователю redmine базе данных.

mysql> GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';

Выход из оболочки.

mysql> exit

Шаг 4 — Установка Ruby и других реквизитов

Последняя версия Redmine совместима с Ruby 3.1. Debian поставляется с Ruby 2.7, поэтому нам нужно установить последнюю версию с помощью Ruby Version Manager (RVM).

Установите GPG-ключ RVM.

$ gpg2 --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

Установите RVM.

$ \curl -sSL https://get.rvm.io | bash -s stable

Создайте исходные тексты скриптов RVM.

$ source ~/.rvm/scripts/rvm

Установите Ruby. Последнюю версию можно проверить по адресу сайт Ruby. На момент написания этого руководства Ruby 3.1.3 является последней версией в этой серии.

$ rvm install ruby-3.1.3

Проверьте установку.

$ ruby -v
ruby 3.1.3p185 (2022-11-24 revision 1a6b16756e) [x86_64-linux]

Установите все остальные пакеты, необходимые Redmine.

$ sudo apt install libxml2-dev libxslt1-dev zlib1g-dev imagemagick libmagickwand-dev libmysqlclient-dev apache2-dev build-essential libcurl4-openssl-dev

Шаг 5 — Установите Redmine

Посетите Страница загрузки Redmine и проверьте последнюю доступную стабильную версию. На момент написания этого руководства последней доступной версией является 5.0.5.

Используйте wget для загрузки Redmine.

$ wget https://www.redmine.org/releases/redmine-5.0.5.tar.gz

При загрузке архива вы можете получить следующую ошибку, поскольку срок действия одного из корневых сертификатов сайта истек.

WARNING: The certificate of ‘www.redmine.org’ is not trusted.
WARNING: The certificate of ‘www.redmine.org’ doesn't have a known issuer.
WARNING: The certificate of ‘www.redmine.org’ has expired.

Если вы получите эту ошибку, выполните следующую команду для загрузки.

$ wget https://www.redmine.org/releases/redmine-5.0.5.tar.gz --no-check-certificate

Извлеките и переместите файлы в папку /var/www/redmine каталог.

$ tar xfz redmine-5.0.5.tar.gz
$ sudo mv redmine-5.0.5 /var/www/redmine

Переключитесь на /var/www/redmine каталог.

$ cd /var/www/redmine

Вы получите следующий вывод и предупреждение о версии Ruby. Вы можете смело проигнорировать его.

RVM used your Gemfile for selecting Ruby, it is all fine - Heroku does that too,
you can ignore these warnings with 'rvm rvmrc warning ignore /var/www/redmine/Gemfile'.
To ignore the warning for all files run 'rvm rvmrc warning ignore allGemfiles'.

Unknown ruby interpreter version (do not know how to handle): >=2.5.0,

Create Redmine configuration files by using the supplied example files.

$ cp config/configuration.yml.example config/configuration.yml
$ cp config/database.yml.example config/database.yml
$ cp public/dispatch.fcgi.example public/dispatch.fcgi

Откройте файл database.yml файл для редактирования.

$ nano config/database.yml

Найдите и настройте параметры базы данных в следующем разделе.

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "Your_password2"
  # Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7
  encoding: utf8mb4

Сохраните файл, нажав кнопку Ctrl + X и ввести Y при появлении запроса.

Установите bundler для управления зависимостями гемов ruby.

$ gem install bundler

Установите окружение для установки gem-зависимостей.

$ bundle config set --local without 'development test'

Установите зависимости gem.

$ bundle install

Если у вас возникнут проблемы с версиями gem, используйте следующую команду для восстановления.

$ gem pristine --all

Добавьте зависимость webrick.

$ bundle add webrick

Генерируйте случайный секретный ключ, чтобы предотвратить подделку файлов cookie для хранения данных сеанса.

$ bundle exec rake generate_secret_token

Создайте структуру базы данных.

$ RAILS_ENV=production bundle exec rake db:migrate

Вставьте данные в базу данных MySQL.

$ RAILS_ENV=production REDMINE_LANG=en bundle exec rake redmine:load_default_data

Создайте необходимые каталоги и установите права доступа к файлам.

$ mkdir -p tmp/pdf
$ mkdir -p public/plugin_assets
$ chown -R $USER:$USER files log tmp public/plugin_assets
$ chmod -R 755 /var/www/redmine/

Выполните следующую команду, чтобы запустить экземпляр сервера Rails.

$ bundle exec rails server -u webrick -e production
=> Booting WEBrick
=> Rails 6.1.7.2 application starting in production http://0.0.0.0:3000
=> Run `bin/rails server --help` for more startup options
[2023-03-06 09:12:11] INFO  WEBrick 1.7.0
[2023-03-06 09:12:11] INFO  ruby 3.1.3 (2022-11-24) [x86_64-linux]
[2023-03-06 09:12:11] INFO  WEBrick::HTTPServer#start: pid=34652 port=3000

Откройте URL http://:3000/login , чтобы получить экран входа в Redmine.

Экран входа в Redmine

Введите учетные данные по умолчанию (admin/admin) для входа в систему. Вам будет предложено изменить пароль.

Экран истечения срока действия пароля Redmine

Далее вы будете перенаправлены на страницу Моя учетная запись страница.

Redmine Мой аккаунт

Redmine был успешно установлен.

Далее нажмите CTRL+C на терминале, чтобы остановить сервер.

Шаг 6 — Установка Phusion Passenger

Phusion Passenger — это сервер приложений на языке ruby, который позволяет нам обслуживать Redmine через сторонний сервер. В нашем случае мы будем использовать Apache.

Установите Passenger.

$ gem install passenger

Установите модуль Passenger для сервера Apache.

$ passenger-install-apache2-module

На экране появится приветственное сообщение. Нажмите Введите для продолжения.

Welcome to the Phusion Passenger Apache 2 module installer, v6.0.17.

This installer will guide you through the entire installation process. It
shouldn't take more than 3 minutes in total.

Here's what you can expect from the installation process:

 1. The Apache 2 module will be installed for you.
 2. You'll learn how to configure Apache.
 3. You'll learn how to deploy a Ruby on Rails application.

Don't worry if anything goes wrong. This installer will advise you on how to
solve any problems.

Press Enter to continue, or Ctrl-C to abort.
--------------------------------------------

Далее вам будет предложено выбрать язык. По умолчанию выбран Ruby, поэтому просто нажмите Enter для продолжения.

Which languages are you interested in?

Use  to select.
If the menu doesn't display correctly, press '!'

 ? ?  Ruby
   ?  Python
   ?  Node.js
   ?  Meteor
--------------------------------------------

Весь процесс займет около 10-15 минут. Если вы получаете ошибку, подобную следующей, это, скорее всего, связано с нехваткой оперативной памяти. Вам следует либо увеличить объем оперативной памяти на вашем сервере, либо установить место подкачки.

c++: fatal error: Killed signal terminated program cc1plus
compilation terminated.
rake aborted!

После завершения процесса вы получите следующее сообщение.

--------------------------------------------
Almost there!

Please edit your Apache configuration file, and add these lines:

   LoadModule passenger_module /home/navjot/.rvm/gems/ruby-3.1.3/gems/passenger-6.0.17/buildout/apache2/mod_passenger.so
   
     PassengerRoot /home/navjot/.rvm/gems/ruby-3.1.3/gems/passenger-6.0.17
     PassengerDefaultRuby /home/navjot/.rvm/gems/ruby-3.1.3/wrappers/ruby
   

After you restart Apache, you are ready to deploy any number of web
applications on Apache, with a minimum amount of configuration!

Press ENTER when you are done editing.

Не нажимайте Введите пока. Откройте новую сессию на сервере от имени текущего пользователя и выполните следующие настройки.

Шаг 7 — Настройка сервера Apache

Создайте файл конфигурации модуля Apache для Phusion Passenger.

$ sudo nano /etc/apache2/conf-available/00-passenger.conf

Вставьте код, который вы получили в конце установки passenger.

 LoadModule passenger_module /home/navjot/.rvm/gems/ruby-3.1.3/gems/passenger-6.0.17/buildout/apache2/mod_passenger.so
   
     PassengerRoot /home/navjot/.rvm/gems/ruby-3.1.3/gems/passenger-6.0.17
     PassengerDefaultRuby /home/navjot /.rvm/gems/ruby-3.1.3/wrappers/ruby
   

Сохраните файл, нажав Ctrl + X и ввести Y при появлении запроса.

Создайте еще один файл конфигурации Apache для сайта Redmine.

$ sudo nano /etc/apache2/sites-available/redmine.conf

Вставьте в него следующий код.

Listen 3000

  PassengerRoot /home/navjot/.rvm/gems/ruby-3.1.3/gems/passenger-6.0.17
  PassengerDefaultRuby /home/navjot/.rvm/gems/ruby-3.1.3/wrappers/ruby


    ServerName redmine.example.com
    DocumentRoot "/var/www/redmine/public"

    CustomLog ${APACHE_LOG_DIR}/redmine_access.log combined
    ErrorLog ${APACHE_LOG_DIR}/redmine_error.log
    LogLevel warn

    
        Options Indexes ExecCGI FollowSymLinks
        Require all granted
        AllowOverride all
    

Сохраните файл, нажав кнопку Ctrl + X и ввести Y при появлении запроса.

Откройте основной файл конфигурации Apache /etc/httpd/conf/httpd.conf для редактирования.

$ sudo nano /etc/httpd/conf/httpd.conf

Найдите переменную ServerName и откомментируйте ее, удалив хэш (#) перед ней и установив ее значение следующим образом.

ServerName localhost

Сохраните файл, нажав кнопку Ctrl + X и ввести Y при появлении запроса.

Включите сайт Redmine и конфигурацию Phusion Passenger.

$ sudo a2ensite redmine.conf
$ sudo a2enconf 00-passenger.conf

Проверьте конфигурацию Apache.

$ sudo apachectl configtest
Syntax OK

Вернитесь назад и нажмите Введите чтобы продолжить установку Passenger. Он выполнит несколько проверок, и вы увидите следующее сообщение об их успешном завершении.

Deploying a web application

To learn how to deploy a web app on Passenger, please follow the deployment
guide:

  https://www.phusionpassenger.com/library/deploy/apache/deploy/

Enjoy Phusion Passenger, a product of Phusion® (www.phusion.nl) :-)
https://www.phusionpassenger.com

Passenger® is a registered trademark of Phusion Holding B.V.

Перезапустите ваш сервер Apache.

$ sudo systemctl restart apache2

Ваш сайт должен быть доступен по адресу http://redmine.example.com:3000.

Это не идеальный способ доступа к Redmine. Он по-прежнему обслуживается по небезопасному протоколу HTTP и использует номер порта. Мы установим Nginx для работы в качестве обратного прокси и будем обслуживать Redmine по протоколу HTTPS, чтобы улучшить ситуацию. Прежде чем перейти к установке и настройке Nginx, нам нужно установить SSL-сертификат.

Шаг 8 — Установка Nginx

Debian 11 поставляется со старой версией Nginx. Чтобы установить последнюю версию, вам нужно загрузить официальный репозиторий Nginx.

Импортируйте ключ подписи Nginx.

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
    | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Добавьте репозиторий для стабильной версии Nginx.

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/debian `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

Обновите системные репозитории.

$ sudo apt update

Установите Nginx.

$ sudo apt install nginx

Проверьте установку. Debian требует выполнения следующей команды sudo.

$ sudo nginx -v
nginx version: nginx/1.22.1

Изменение порта прослушивания Apache

Чтобы избежать конфликта с Nginx, нам нужно изменить порт, на котором по умолчанию слушает Apache. Откройте файл /etc/apache2/ports.conf для редактирования.

$ sudo nano /etc/apache2/ports.conf

Измените порт с 80 на 8080 следующим образом.

Listen 8080

Сохраните файл, нажав кнопку Ctrl + X и ввести Y при появлении запроса.

Отключите конфигурацию сайта по умолчанию.

$ sudo a2dissite 000-default.conf

Перезапустите Apache.

$ sudo systemctl restart apache2

Запустите сервер Nginx.

$ sudo systemctl start nginx

Проверьте состояние сервера Nginx.

$ sudo systemctl status nginx
? nginx.service - nginx - high performance web server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2023-03-06 10:29:44 UTC; 6s ago
       Docs: https://nginx.org/en/docs/
    Process: 53531 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
   Main PID: 53532 (nginx)
      Tasks: 2 (limit: 1129)
     Memory: 1.7M
        CPU: 8ms
     CGroup: /system.slice/nginx.service
             ??53532 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
             ??53533 nginx: worker process

Шаг 9 — Установка SSL

Нам нужно установить Certbot для генерации SSL-сертификата. Вы можете установить Certbot из репозитория Debian или взять последнюю версию с помощью инструмента Snapd. Мы будем использовать версию Snapd.

Debian не поставляется с установленным Snapd. Поэтому установите Snapd.

$ sudo apt install snapd

Выполните следующие команды, чтобы убедиться, что ваша версия Snapd актуальна.

$ sudo snap install core && sudo snap refresh core

Установите Certbot.

$ sudo snap install --classic certbot

Используйте следующую команду, чтобы убедиться, что команда Certbot может быть запущена, создав символическую ссылку на файл /usr/bin каталог.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Сгенерируйте сертификат SSL.

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d redmine.example.com

Приведенная выше команда загрузит сертификат в /etc/letsencrypt/live/redmine.example.com каталог на вашем сервере.

Создайте группа Диффи-Хеллмана сертификат.

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Проверьте службу планировщика обновления Certbot.

$ sudo systemctl list-timers

Вы найдете snap.certbot.renew.service как одну из запланированных к запуску служб.

NEXT                        LEFT         LAST                        PASSED       UNIT                         ACTIVATES
Mon 2023-03-06 11:37:00 UTC 1h 2min left n/a                         n/a          snap.certbot.renew.timer     snap.certbot.renew.service
Mon 2023-03-06 13:37:15 UTC 3h 2min left Sun 2023-03-05 13:37:15 UTC 20h ago      systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
Tue 2023-03-07 00:00:00 UTC 13h left     Mon 2023-03-06 00:00:15 UTC 10h ago      logrotate.timer              logrotate.service

Выполните пробный запуск процесса, чтобы убедиться, что обновление SSL работает нормально.

$ sudo certbot renew --dry-run

Если ошибок нет, все готово. Ваш сертификат обновится автоматически.

Шаг 10 — Настройка Nginx в качестве обратного прокси

Создайте и откройте файл /etc/nginx/conf.d/redmine.conf для редактирования.

$ sudo nano /etc/nginx/conf.d/redmine.conf

Вставьте в него следующий код.

# Redirect all non-encrypted to encrypted
server {
    listen 80;
    server_name redmine.example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;

    server_name redmine.example.com;

    ssl_certificate     /etc/letsencrypt/live/redmine.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/redmine.example.com/privkey.pem;
	ssl_trusted_certificate /etc/letsencrypt/live/redmine.example.com/chain.pem;

	ssl_session_timeout  5m;
    ssl_session_cache shared:MozSSL:10m;
    ssl_session_tickets off;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;
    resolver 8.8.8.8;

    access_log /var/log/nginx/redmine.access.log main;
    error_log  /var/log/nginx/redmine.error.log;

	location / {
        proxy_pass          http://localhost:3000;
        proxy_redirect      off;
        proxy_buffering     off;
        proxy_set_header    Host $host;
        proxy_set_header    X-Real-IP $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Сохраните файл, нажав кнопку Ctrl + X и ввести Y при появлении соответствующего запроса.

Откройте файл /etc/nginx/nginx.conf для редактирования.

$ sudo nano /etc/nginx/nginx.conf

Добавьте следующую строку перед строкой include /etc/nginx/conf.d/*.conf;.

server_names_hash_bucket_size  64;

Сохраните файл, нажав кнопку Ctrl + X и ввести Y при появлении запроса.

Проверьте синтаксис файла конфигурации Nginx.

$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Перезапустите службу Nginx, чтобы включить новую конфигурацию.

$ sudo systemctl restart nginx

Ваше приложение Redmine должно быть доступно по адресу https://redmine.example.com.

Вам следует удалить запись для порта 3000 в брандмауэре, поскольку она больше не нужна.

$ sudo ufw delete allow 3000

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *