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.

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

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

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