Установка нового личного кабинета
Установка Wildfly
При установке далее мы рекомендуем указывать JAVA_HOME вручную в standalone.conf, чтобы, если у вас есть установленная JRE/JDK из репозитария, неожиданно для вас не поменялась используемая версия Java. Однако это не касается запуска некоторых команд, требуемых при установке личного кабинета. Для таких команд может использоваться JRE/JDK по умолчанию, установленную из репозитария; или же Вы можете прописать JAVA_HOME глобально, в /etc/environment или в ~/.bashrc .
Скачайте сервер приложений Java EE (Java Platform, Enterprise Edition) Wildfly с официального сайта http://wildfly.org/downloads/. Рекомендуемая версия Wildfly для биллинга 14.0.1.Final. Распакуйте содержимое архива, например, в папку /opt и переименуйте папку wildfly-номервесии в wildfly. Или же создайте символическую ссылку /opt/wildfly, которая будет указывать на /opt/wildfly-номерверсии.
Отредактируйте файл /opt/wildfly/bin/standalone.conf, укажите правильный путь к JDK в переменной JAVA_HOME:
#
# Specify the location of the Java home directory. If set then $JAVA will
# be defined to $JAVA_HOME/bin/java, else $JAVA will be "java".
#
#JAVA_HOME="/opt/java/jdk"
Отредактируйте ниже параметры запуска JVM:
#
# Specify options to pass to the Java VM.
#
if
[
"x$JAVA_OPTS"
=
"x"
];
then
#JAVA_OPTS="-Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true"
JAVA_OPTS=
"-Xms64m -Xmx300m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true -XX:MaxDirectMemorySize=80m -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=20"
JAVA_OPTS=
"$JAVA_OPTS -Djboss.modules.system.pkgs=$JBOSS_MODULES_SYSTEM_PKGS -Djava.awt.headless=true"
else
echo
"JAVA_OPTS already set in environment; overriding default settings with values: $JAVA_OPTS"
fi
Если у вас нет значения JAVA_HOME по умолчанию, то отредактируйте add-user.sh и укажите там путь к JAVA_HOME (иначе следующая команда не будет выполнена):
#!/bin/sh
# Add User Utility
#
# A simple utility for adding new users to the properties file used
# for domain management authentication out of the box.
#
JAVA_HOME=
"/opt/java/jdk"
DIRNAME=`
dirname
"$0"
`
Выполните команду, чтобы добавить пользователя Wildfly для аутентификации в web-консоли:
.
/add-user
.sh логин пароль
Отредактируйте файл конфигурации Wildfly /opt/wildfly/standalone/configuration/standalone.xml указав используемые HTTP-порты (если необходимо):
<!--<
socket
-binding
name
=
"http"
port
=
"${jboss.http.port:8080}"
/>-->
<
socket
-binding
name
=
"http"
port
=
"${jboss.http.port:8081}"
/>
Возможно вы захотите поменять интерфейс, на котором открыт HTTP-порт. Обратите внимание, что для сокета (порта) интерфейс прописан в атрибуте socket-binding/@interface, а также в socket-binding-group/@default-interface. Сами интерфейсы прописаны выше:
<
interfaces
>
<
interface
name
=
"management"
>
<
inet
-address
value
=
"${jboss.bind.address.management:127.0.0.1}"
/>
</
interface
>
<
interface
name
=
"public"
>
<
inet
-address
value
=
"${jboss.bind.address:127.0.0.1}"
/>
</
interface
>
<
interface
name
=
"unsecure"
>
<
inet
-address
value
=
"${jboss.bind.address.unsecure:127.0.0.1}"
/>
</
interface
>
</
interfaces
>
Не рекомендуем оставлять web-консоль (management) открытым наружу (если вы решили поменять интерфейсы).
Или же порты можно поменять с помощью сдвига (offset), используя параметр port-offset, например, на 1 (т.е. 8080 станет 8081, 8443 станет 8444), изменив значение параметра port-offset:
<!--<
socket
-binding-group
name
=
"standard-sockets"
default-interface
=
"public"
port-offset
=
"${jboss.socket.binding.port-offset:0}"
>-->
<
socket
-binding-group
name
=
"standard-sockets"
default-interface
=
"public"
port-offset
=
"${jboss.socket.binding.port-offset:1}"
>
При изменении port-offset также изменится порт web-консоли Wildfly, значение по умолчанию которого 9990. В этом случае нужно редактировать файл jboss-cli.xml, поменяв значение <port>9990</port> на новое.
Данные параметры можно менять в web-консоли Wildfly.
Добавьте системного пользователя wildfly и поменяйте владельца у /opt/wildfly:
useradd
-r wildfly
chown
-R wildfly:wildfly
/opt/wildfly-10
.1.0.Final
chown
-R wildfly:wildfly
/opt/wildfly
Создайте файл службы для systemd
cd
/lib/systemd/system
touch
wildfly.service
и укажите содержимое:
[Unit]
Description
=
WildFly Application Server Daemon
After
=
network.
target
Requires
=
[Service]
Type
=
simple
User
=
wildfly
Group
=
wildfly
ExecStart
=
/
opt
/
wildfly
/
bin
/
standalone.sh
[Install]
WantedBy
=
multi
-
user.
target
Установите в автозапуск:
systemctl
enable
wildfly
Запустите
systemctl start wildfly
и попробуйте открыть web-консоль на порту 9991, если указали сдвиг портов на 1, или 9990, если не указывали сдвиг портов. Web-консоль по умолчанию запускается на интерфейсе 127.0.0.1, поэтому может понадобиться проброс портов.
Настройте firewall, а также рекомендуем использовать nginx.
Установка ЛК
Создайте нового пользователя в BGBillingServer, в поле "Полное имя" укажите Пользователь (как ранее помечались действия абонента), в поле "Описание" укажите "Личный кабинет". Придумайте сложные логин и пароль, разрешите все действия.
Скачайте с ftp://bgbilling.ru MyBGBilling.war соответствующий версии биллинга, например, в папку /opt. Распакуйте архив, оставив имя директории, содержащее файлы архива MyBGBilling.war и поместите эту папку в /opt/wildfly/standalone/deployments:
unzip .
/MyBGBilling
.war -d
/opt/wildfly/standalone/deployments/MyBGBilling
.war &&
rm
-f MyBGBilling.war
Поменяйте владельца у директории MyBGBilling.war
chown
-R wildfly:wildfly
/opt/wildfly/standalone/deployments/MyBGBilling
.war
Скопируйте содержимое директории MyBGBilling.war/WEB-INF/script/files в /opt/wildfly/bin:
cp
/opt/wildfly/standalone/deployments/MyBGBilling
.war
/WEB-INF/script/files/
*.*
/opt/wildfly/bin
Отредактируйте файл /opt/wildfly/bin/setenv.sh, укажите правильный путь к JDK в переменной JAVA_HOME.
Если у вас нет значения JAVA_HOME по умолчанию, то отредактируйте jboss-cli.sh и укажите там путь к JAVA_HOME (иначе следующая команда не будет выполнена):
#!/bin/sh
JAVA_HOME=
"/opt/java/jdk"
CLI_OPTS=
""
Выполните команду для добавления security-domain в Wildfly, который будет использовать ЛК.
.
/jboss-cli
.sh --connect --
file
=
/opt/wildfly/standalone/deployments/MyBGBilling
.war
/WEB-INF/defaults/configure-security-domain
.cli
Если вы изменяли port-offset, то также изменился порт web-консоли Wildfly, значение по умолчанию которого 9990. В этом случае перед выполнением данной команды нужно редактировать файл jboss-cli.xml, поменяв значение <port>9990</port> на новое.
Скопируйте файлы конфигурации из MyBGBilling.war/WEB-INF/defaults в MyBGBilling.war/WEB-INF:
cp
/opt/wildfly/standalone/deployments/MyBGBilling
.war
/WEB-INF/defaults/
*.groovy
/opt/wildfly/standalone/deployments/MyBGBilling
.war
/WEB-INF
Отредактируйте MyBGBilling.war/WEB-INF/mybgbilling-conf.groovy, укажите параметры подключения к BGBillingServer
//
Параметры подключения к BGBillingServer.
//
ЛК является пользователем биллинга, общается с ним также, как BGBillingClient
bgbilling {
//
URL доступа к BGBilling
url =
'http://127.0.0.1:8080/bgbilling/executer'
//
Логин
user =
'customer'
//
Пароль
password =
'customer'
}
Запустите синхронизацию клиентских библиотек биллинга
/opt/wildfly/bin/mybgbilling-sync-libs
.sh
Рекомендация для reverse-proxy (Nginx)
Если вы используется reverse-proxy (например, Nginx) и на нём настроен HTTPS, а reverse-proxy работает с Wildfly по HTTP, то в некоторых случаях нужно, чтобы Wildfly знал, что абонент на самом деле использует HTTPS (например, это может быть нужно при отправке редиректа от Wildfly). Для этого рекомендуется внести такие настройки:
Указать в reverse-proxy добавление заголовка X-Forwarded-Proto:
proxy_set_header X-Forwarded-Proto $scheme;
Указать Wildfly, чтобы он обрабатывал такой заголовок. Для этого в standalone.xml в элементе http-listener нужно добавить proxy-address-forwarding="true":
<
http
-listener
name
=
"default"
socket-binding
=
"http"
redirect-socket
=
"https"
enable-http2
=
"true"
proxy-address-forwarding
=
"true"
/>