Установка нового личного кабинета
Установка 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 для биллинга 7.0 - 10.1.0.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"elseecho"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-bindingname="http"port="${jboss.http.port:8080}"/>--><socket-bindingname="http"port="${jboss.http.port:8081}"/>Возможно вы захотите поменять интерфейс, на котором открыт HTTP-порт. Обратите внимание, что для сокета (порта) интерфейс прописан в атрибуте socket-binding/@interface, а также в socket-binding-group/@default-interface. Сами интерфейсы прописаны выше:
<interfaces><interfacename="management"><inet-addressvalue="${jboss.bind.address.management:127.0.0.1}"/></interface><interfacename="public"><inet-addressvalue="${jboss.bind.address:127.0.0.1}"/></interface><interfacename="unsecure"><inet-addressvalue="${jboss.bind.address.unsecure:127.0.0.1}"/></interface></interfaces>Не рекомендуем оставлять web-консоль (management) открытым наружу (если вы решили поменять интерфейсы).
Или же порты можно поменять с помощью сдвига (offset), используя параметр port-offset, например, на 1 (т.е. 8080 станет 8081, 8443 станет 8444), изменив значение параметра port-offset:
<!--<socket-binding-groupname="standard-sockets"default-interface="public"port-offset="${jboss.socket.binding.port-offset:0}">--><socket-binding-groupname="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 wildflychown-R wildfly:wildfly/opt/wildfly-10.1.0.Finalchown-R wildfly:wildfly/opt/wildflyСоздайте файл службы для systemd
cd/lib/systemd/systemtouchwildfly.serviceи укажите содержимое:
[Unit]Description=WildFly Application Server DaemonAfter=network.targetRequires=[Service]Type=simpleUser=wildflyGroup=wildflyExecStart=/opt/wildfly/bin/standalone.sh[Install]WantedBy=multi-user.targetУстановите в автозапуск:
systemctlenablewildflyЗапустите
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/shJAVA_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.//ЛК является пользователем биллинга, общается с ним также, как BGBillingClientbgbilling {//URL доступа к BGBillingurl ='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-listenername="default"socket-binding="http"redirect-socket="https"enable-http2="true"proxy-address-forwarding="true"/>