Установка Jira и Confluence (nginx, SSL, ISPmanager) на Centos7

Внимание! Установка производится на чистый сервер. Если у вас уже есть настроенный сервер, установите Jira и Confluence на новый VDS и перенесите данные. Так как настройка Jira и Confluence может сбить текущие настройки сервера.

Рекомендованные параметры сервера:
CPU: Quad core 2 GHz + CPU
RAM: 6 GB
Minimum database space: 10 GB
Подробное руководство по аппаратным требованиям к серверу, english

 

1. Создаём в панели ISPmanager в разделе Доменные имена свой основной домен, например example.com (замените на имя вашего домена). В разделе WWW домены создаём два поддомена, например:
jira.example.com — для установки Jira
wiki.example.com — для установки Confluence

 

2. Переходим в Настройки → Возможности и в разделе Веб-сервер (WWW) устанавливаем nginx.

 

3. Настройку будем производить сразу на протокол HTTPS. Устанавливаем модуль Let's Encrypt (Интеграция → Модули) и в настройках WWW-доменов включаем Защищенное соединение (SSL), ставим Перенаправлять HTTP-запросы в HTTPS. В строке SSL-сертификат ставим Новый Let's Encrypt сертификат.

 

4. Открываем в разделе WWW-домены конфигурационный файл каждого поддомена с помощью кнопки Конфиг и приводим его к следующему виду:

Конфиг для jira.example.com:

server {
	server_name jira.example.com www.jira.example.com;
	charset off;
	index index.php index.html;
	disable_symlinks if_not_owner from=$root_path;
	include /etc/nginx/vhosts-includes/*.conf;
	include /etc/nginx/vhosts-resources/jira.example.com/*.conf;
	access_log /var/www/httpd-logs/jira.example.com.access.log;
	error_log /var/www/httpd-logs/jira.example.com.error.log notice;
	ssi on;
	set $root_path /var/www/www-root/data/www/jira.example.com;
	root $root_path;
	listen ip-адрес_сервера:80;
	return 301 https://$host:443$request_uri;
	
}
server {
	server_name jira.example.com www.jira.example.com;
	ssl on;
	ssl_certificate "/var/www/httpd-cert/colx/jira.example.com_le1.crtca";
	ssl_certificate_key "/var/www/httpd-cert/colx/jjira.example.com_le1.key";
	ssl_ciphers EECDH:+AES256:-3DES:RSA+AES:!NULL:!RC4;
	ssl_prefer_server_ciphers on;
	ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
	ssl_dhparam /etc/ssl/certs/dhparam4096.pem;
	charset off;
	index index.php index.html;
	disable_symlinks if_not_owner from=$root_path;
	include /etc/nginx/vhosts-includes/*.conf;
	include /etc/nginx/vhosts-resources/jira.example.com/*.conf;
	access_log /var/www/httpd-logs/jira.example.com.access.log;
	error_log /var/www/httpd-logs/jira.example.com.error.log notice;
	ssi on;
	set $root_path /var/www/www-root/data/www/jira.example.com;
	root $root_path;
	listen ip-адрес_сервера:443;
	location / {
        proxy_pass http://127.0.0.1:8081;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass_request_headers      on;
        port_in_redirect off;
        proxy_redirect http://127.0.0.1:8081/ /;
        proxy_connect_timeout 600;
   }
}

 

Конфиг для wiki.example.com аналогичный приведённому выше, отличаются только порты проксирования, доменное имя (в нашей настройке — это wiki.example.com) и дополнительный location:

location / {
        proxy_pass http://127.0.0.1:8090;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-for $remote_addr;
        port_in_redirect off;
        proxy_redirect http://127.0.0.1:8090/ /;
        proxy_connect_timeout 600;
   }
        location /synchrony {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://localhost:8091/synchrony;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
    }

 

ip-адрес_сервера — ip-адрес вашего сервера, на который направлены поддомены.

Это только пример конфига, вы можете его изменить в соответствии со своими требованиями.

 

5. Переходим в раздел Инструменты → Базы данных и создаем две базы данных, например jira и wiki. Выставляем пользователей БД и пароли к ним.

Теперь нам нужно сменить кодировку для баз данных. Заходим на сервер по SSH, подключаемся к mysql и выполняем следующий запрос к обоим БД:

ALTER DATABASE yourDB CHARACTER SET utf8 COLLATE utf8_bin;

Где yourDB — имя вашей базы данных.

 

6. Чтобы защитить конфиги nginx от изменения панелью управления ISPmanager, выполним следующие команды:

# chattr +i /etc/nginx/vhosts/www-root/jira.example.com.conf
# chattr +i /etc/nginx/vhosts/www-root/wiki.example.com.conf

 

После выполнения данных команд вы не сможете изменять настройки WWW-доменов из панели ISPmanager. Вернуть такую возможность можно следующими командами:

# chattr -i /etc/nginx/vhosts/www-root/jira.example.com.conf
# chattr -i /etc/nginx/vhosts/www-root/wiki.example.com.conf

 

Внимание! Если произвести изменения настроек WWW-поддоменов из ISPmanager, они перестанут корректно работать.

Поправим настройки nginx, чтобы не возникала 504-я ошибка при установке. В конфиг /etc/nginx/nginx.conf в секцию HTTP нужно добавить следующие строки:

proxy_connect_timeout       900;
proxy_send_timeout          900;
proxy_read_timeout          900;
send_timeout                900;

 

7. Приступаем к установке Jira. Скачиваем скрипт установки с официального сайта, выдаем права на запуск скрипта и запускаем его:

# wget https://product-downloads.atlassian.com/software/jira/downloads/atlassian-jira-software-7.10.0-x64.bin
# chmod +x atlassian-jira-software-7.10.0-x64.bin
# ./atlassian-jira-software-7.10.0-x64.bin

This will install JIRA Software 7.10.0 on your computer.
OK [o, Enter], Cancel [c]

Нажимаем Enter

Choose the appropriate installation or upgrade option. 
Please choose one of the following: 
Express Install (use default settings) [1], Custom Install (recommended for advanced users) 
[2, Enter], Upgrade an existing JIRA installation [3]

Нажимаем Enter

Where should JIRA Software be installed? [/opt/atlassian/jira]

Нажимаем Enter

Default location for JIRA Software data [/var/atlassian/application-data/jira]

 

Вставляем директорию нашего WWW-домена /var/www/www-root/data/www/jira.example.com

Configure which ports JIRA Software will use. 
JIRA requires two TCP ports that are not being used by any other 
applications on this machine. The HTTP port is where you will access JIRA 
through your browser. The Control port is used to startup and shutdown JIRA. 
Use default ports (HTTP: 8080, Control: 8005) - Recommended [1, Enter], Set custom value 
for HTTP and Control ports [2]

Выбираем 2

HTTP Port Number 
[8080]

Прописываем порт 8081
Нажимаем Enter

Control Port Number 
[8005]

Нажимаем Enter

Далее на все вопросы нажимаем Enter.

 

Если всё прошло успешно, то вы увидите следующее сообщение:

Please wait a few moments while JIRA Software starts up. 
Launching JIRA Software ... 
Installation of JIRA Software 7.10.0 is complete 
Your installation of JIRA Software 7.10.0 is now ready and can be accessed 
via your browser. JIRA Software 7.10.0 can be accessed at http://localhost:8081 
Finishing installation …

 

8. Для работы с mysql из java нужен Connector/J, скачиваем его, разворачиваем архив и копируем в директорию /opt/atlassian/jira/lib/

# wget https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
# tar -xzvf mysql-connector-java-5.1.46.tar.gz
# cp mysql-connector-java-5.1.46/mysql-connector-java-5.1.46-bin.jar /opt/atlassian/jira/lib/

 

9. Для корректной работы Jira по протоколу HTTPS нужно внести исправления в конфиг /opt/atlassian/jira/conf/server.xml

Меняем секцию:

<Connector port="8081" 
                   maxThreads="150" 
                   minSpareThreads="25" 
                   connectionTimeout="20000" 
                   enableLookups="false"
                   maxHttpHeaderSize="8192" 
                   protocol="HTTP/1.1" 
                   useBodyEncodingForURI="true" 
                   redirectPort="8443"
                   acceptCount="100" 
                   disableUploadTimeout="true" 
                   bindOnInit="false"/>

на

<Connector port="8081"

                   acceptCount="100"
                   connectionTimeout="20000"
                   disableUploadTimeout="true"
                   enableLookups="false"
                   maxHttpHeaderSize="8192"
                   maxThreads="150"
                   minSpareThreads="25"
                   protocol="HTTP/1.1"
                   redirectPort="8443"
                   useBodyEncodingForURI="true"
                   scheme="https"
                   proxyName="jira.example.com"
                   proxyPort="443"/>

 

Перезапускаем Jira:

# /etc/init.d/jira stop
# /etc/init.d/jira start

 

10. Открываем Jira через веб-интерфейс (jira.example.com) в браузере и завершаем установку. При настройке указываем базу данных, которую мы создали в 5-ом пункте (имя базы, пользователь базы, пароль пользователя). Остальные настройки:

Тип базы данных: Mysql
Имя хоста: localhost
Порт: 3306

 

11. Приступаем к установке Confluence.

Скачиваем скрипт установки с официального сайта.

Принцип установки такой же как у Jira. Различие лишь в 2-х пунктах:

Default location for Confluence data
[/var/atlassian/application-data/confluence]

 

Указываем корневую директорию поддомена wiki.example.com:
/var/www/www-root/data/www/wiki.example.com

Configure which ports Confluence will use.
Confluence requires two TCP ports that are not being used by any other
applications on this machine. The HTTP port is where you will access
Confluence through your browser. The Control port is used to Startup and
Shutdown Confluence.
Use default ports (HTTP: 8090, Control: 8000) - Recommended [1, Enter], Set custom value for HTTP and Control ports [2]

Порт изменять не нужно, нажимаем Enter.

 

12. Копируем Connector/J:

# cp mysql-connector-java-5.1.46/mysql-connector-java-5.1.46-bin.jar /opt/atlassian/confluence/lib/

Редактируем настройки Mysql:

# service mariadb stop

 

Открываем файл настроек /etc/my.cnf и добавляем туда следующие строки в секцию [mysqld]:

transaction-isolation=READ-COMMITTED
innodb_log_file_size = 256M
max_allowed_packet = 48M

 

Сохраняем изменения. После этого нужно переименовать существующие лог-файлы и запустить Mysql:

# mv /var/lib/mysql/ib_logfile0 /var/lib/mysql/ib_logfile0_old
# mv /var/lib/mysql/ib_logfile1 /var/lib/mysql/ib_logfile1_old
# service mariadb start

 

13. Для корректной работы Confluence по протоколу HTTPS нужно внести исправления в конфиг /opt/atlassian/confluence/conf/server.xml

Меняем секцию:

<Connector port="8090" connectionTimeout="20000" redirectPort="8443"
                   maxThreads="48" minSpareThreads="10"
                   enableLookups="false" acceptCount="10" debug="0" URIEncoding="UTF-8"
                   protocol="org.apache.coyote.http11.Http11NioProtocol"/>

на

<Connector port="8090" connectionTimeout="20000" redirectPort="8443"
                   maxThreads="48" minSpareThreads="10"
                   enableLookups="false" acceptCount="10" debug="0" URIEncoding="UTF-8"
                   protocol="org.apache.coyote.http11.Http11NioProtocol"
                   scheme="https" proxyName="wiki.example.com" proxyPort="443"/>

 

Перезапускаем Confluence:

# /etc/init.d/confluence restart

 

14. Открываем Confluence через веб-интерфейс (wiki.example.com) в браузере и завершаем установку.

Если выполняете интеграцию с Jira, указывайте корректный URL. Если Jira работает по протоколу HTTPS, то так и нужно указывать — в нашем случае это https://jira.example.com

 

Если вы не можете провести установку самостоятельно, обратитесь в нашу службу поддержки. Услуга платная, стоимость — по согласованию с руководителем техподдержки.