优化野火IM服务安装目录
This commit is contained in:
@@ -187,11 +187,6 @@ http.channel.rate_limit 1000
|
|||||||
##客户端请求频率限制,默认是5秒100次。通常情况下不要修改这个值。
|
##客户端请求频率限制,默认是5秒100次。通常情况下不要修改这个值。
|
||||||
client.request_rate_limit 100
|
client.request_rate_limit 100
|
||||||
|
|
||||||
#*********************************************************************
|
|
||||||
# hazelcase configuration
|
|
||||||
#*********************************************************************
|
|
||||||
hazelcast.configuration config/hazelcast.xml
|
|
||||||
|
|
||||||
#*********************************************************************
|
#*********************************************************************
|
||||||
# Media server configuration
|
# Media server configuration
|
||||||
#*********************************************************************
|
#*********************************************************************
|
||||||
|
|||||||
@@ -378,7 +378,7 @@ public class Server {
|
|||||||
LOG.info("Configuring embedded Hazelcast instance");
|
LOG.info("Configuring embedded Hazelcast instance");
|
||||||
|
|
||||||
serverIp = getServerIp(config);
|
serverIp = getServerIp(config);
|
||||||
String hzConfigPath = "config/hazelcast.xml";
|
String hzConfigPath = System.getProperty("hazelcast.configuration", "config/hazelcast.xml");
|
||||||
if (hzConfigPath != null) {
|
if (hzConfigPath != null) {
|
||||||
boolean isHzConfigOnClasspath = this.getClass().getClassLoader().getResource(hzConfigPath) != null;
|
boolean isHzConfigOnClasspath = this.getClass().getClassLoader().getResource(hzConfigPath) != null;
|
||||||
Config hzconfig = isHzConfigOnClasspath
|
Config hzconfig = isHzConfigOnClasspath
|
||||||
|
|||||||
@@ -113,7 +113,7 @@
|
|||||||
<type>archive</type>
|
<type>archive</type>
|
||||||
<mapper>
|
<mapper>
|
||||||
<type>perm</type>
|
<type>perm</type>
|
||||||
<prefix>/usr/local/im-server</prefix>
|
<prefix>/opt/im-server</prefix>
|
||||||
</mapper>
|
</mapper>
|
||||||
</data>
|
</data>
|
||||||
<data>
|
<data>
|
||||||
@@ -150,7 +150,7 @@
|
|||||||
<name>im-server</name>
|
<name>im-server</name>
|
||||||
<needarch>noarch</needarch>
|
<needarch>noarch</needarch>
|
||||||
<targetOS>linux</targetOS>
|
<targetOS>linux</targetOS>
|
||||||
<prefix>/usr/local/im-server</prefix>
|
<prefix>/opt/im-server</prefix>
|
||||||
<defineStatements>
|
<defineStatements>
|
||||||
<defineStatement>_unpackaged_files_terminate_build 0</defineStatement>
|
<defineStatement>_unpackaged_files_terminate_build 0</defineStatement>
|
||||||
</defineStatements>
|
</defineStatements>
|
||||||
@@ -163,7 +163,7 @@
|
|||||||
|
|
||||||
<mappings>
|
<mappings>
|
||||||
<mapping>
|
<mapping>
|
||||||
<directory>/usr/local/im-server</directory>
|
<directory>/opt/im-server</directory>
|
||||||
<filemode>755</filemode>
|
<filemode>755</filemode>
|
||||||
<sources>
|
<sources>
|
||||||
<source>
|
<source>
|
||||||
@@ -186,14 +186,14 @@
|
|||||||
</mapping>
|
</mapping>
|
||||||
</mappings>
|
</mappings>
|
||||||
<postinstallScriptlet>
|
<postinstallScriptlet>
|
||||||
<script>
|
<scriptFile>${project.basedir}/src/main/rpm/install.sh</scriptFile>
|
||||||
echo "Unzip packages..." ; cd /usr/local/im-server ; tar -xzvf distribution*.tar.gz ; echo "Im server installed in /usr/local/im-server" ; systemctl daemon-reload
|
<fileEncoding>utf-8</fileEncoding>
|
||||||
</script>
|
<filter>true</filter>
|
||||||
</postinstallScriptlet>
|
</postinstallScriptlet>
|
||||||
<postremoveScriptlet>
|
<postremoveScriptlet>
|
||||||
<script>
|
<scriptFile>${project.basedir}/src/main/rpm/uninstall.sh</scriptFile>
|
||||||
echo "Remove files..." ; cd /usr/local/im-server ; rm -rf * ; rm -rf /usr/lib/systemd/system/im-server.service ; systemctl daemon-reload
|
<fileEncoding>utf-8</fileEncoding>
|
||||||
</script>
|
<filter>true</filter>
|
||||||
</postremoveScriptlet>
|
</postremoveScriptlet>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
|||||||
@@ -1 +1,18 @@
|
|||||||
|
set -e
|
||||||
|
sed -i 's/h2db.path .\/h2db\/wfchat/h2db.path \/var\/lib\/im-server\/h2db\/imdb/' /opt/im-server/config/wildfirechat.conf
|
||||||
|
sed -i 's/local.media.storage.root .\/media/local.media.storage.root \/var\/lib\/im-server\/media/' /opt/im-server/config/wildfirechat.conf
|
||||||
|
sed -i 's/<Property name="MSG_LOG_HOME">.\/logs<\/Property>/<Property name="MSG_LOG_HOME">\/var\/log\/im-server<\/Property>/' /opt/im-server/config/log4j2.xml
|
||||||
|
sed -i 's/WILDFIRECHAT_CONFIG_PATH=$WILDFIRECHAT_HOME/WILDFIRECHAT_CONFIG_PATH=\/etc\/im-server/' /opt/im-server/bin/wildfirechat.sh
|
||||||
|
|
||||||
|
if [ ! -d /etc/im-server ]; then
|
||||||
|
mkdir /etc/im-server
|
||||||
|
fi
|
||||||
|
|
||||||
|
mv -f /opt/im-server/config /etc/im-server
|
||||||
systemctl daemon-reload
|
systemctl daemon-reload
|
||||||
|
echo "IM server folders:"
|
||||||
|
echo "/etc/im-server/config config"
|
||||||
|
echo "/opt/im-server binary files"
|
||||||
|
echo "/var/log/im-server logs"
|
||||||
|
echo "/var/lib/im-server/h2db embed db"
|
||||||
|
echo "/var/lib/im-server/media embed media files"
|
||||||
|
|||||||
@@ -1,4 +1,16 @@
|
|||||||
rm -rf /usr/local/im-server
|
set -e
|
||||||
|
rm -rf /opt/im-server
|
||||||
|
rm -rf /etc/im-server
|
||||||
|
rm -rf /var/log/im-server
|
||||||
rm -rf /usr/lib/systemd/system/im-server.service
|
rm -rf /usr/lib/systemd/system/im-server.service
|
||||||
|
|
||||||
|
if [ -d /var/lib/im-server/h2db ]; then
|
||||||
|
echo "IM embed db file not deleted in path /var/lib/im-server/h2db, if you don't need it anymore, please remove it manually"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d /var/lib/im-server/media ]; then
|
||||||
|
echo "IM embed media files not deleted in path /var/lib/im-server/media, if you don't need it anymore, please remove it manually"
|
||||||
|
fi
|
||||||
|
|
||||||
systemctl daemon-reload
|
systemctl daemon-reload
|
||||||
|
|
||||||
|
|||||||
@@ -182,11 +182,6 @@ http.channel.rate_limit 1000
|
|||||||
##客户端请求频率限制,默认是5秒100次。通常情况下不要修改这个值。
|
##客户端请求频率限制,默认是5秒100次。通常情况下不要修改这个值。
|
||||||
client.request_rate_limit 100
|
client.request_rate_limit 100
|
||||||
|
|
||||||
#*********************************************************************
|
|
||||||
# hazelcase configuration
|
|
||||||
#*********************************************************************
|
|
||||||
hazelcast.configuration config/hazelcast.xml
|
|
||||||
|
|
||||||
#*********************************************************************
|
#*********************************************************************
|
||||||
# Media server configuration
|
# Media server configuration
|
||||||
#*********************************************************************
|
#*********************************************************************
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
set -e
|
||||||
|
|
||||||
|
cd /opt/im-server
|
||||||
|
tar -xzvf distribution*.tar.gz
|
||||||
|
|
||||||
|
sed -i 's/h2db.path .\/h2db\/wfchat/h2db.path \/var\/lib\/im-server\/h2db\/imdb/' /opt/im-server/config/wildfirechat.conf
|
||||||
|
sed -i 's/local.media.storage.root .\/media/local.media.storage.root \/var\/lib\/im-server\/media/' /opt/im-server/config/wildfirechat.conf
|
||||||
|
sed -i 's/<Property name="MSG_LOG_HOME">.\/logs<\/Property>/<Property name="MSG_LOG_HOME">\/var\/log\/im-server<\/Property>/' /opt/im-server/config/log4j2.xml
|
||||||
|
sed -i 's/WILDFIRECHAT_CONFIG_PATH=$WILDFIRECHAT_HOME/WILDFIRECHAT_CONFIG_PATH=\/etc\/im-server/' /opt/im-server/bin/wildfirechat.sh
|
||||||
|
|
||||||
|
if [ ! -d /etc/im-server ]; then
|
||||||
|
mkdir /etc/im-server
|
||||||
|
fi
|
||||||
|
|
||||||
|
mv -f /opt/im-server/config /etc/im-server
|
||||||
|
systemctl daemon-reload
|
||||||
|
|
||||||
|
echo "IM server folders:"
|
||||||
|
echo "/etc/im-server/config config"
|
||||||
|
echo "/opt/im-server binary files"
|
||||||
|
echo "/var/log/im-server logs"
|
||||||
|
echo "/var/lib/im-server/h2db embed db"
|
||||||
|
echo "/var/lib/im-server/media embed media files"
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
set -e
|
||||||
|
rm -rf /opt/im-server
|
||||||
|
rm -rf /etc/im-server
|
||||||
|
rm -rf /var/log/im-server
|
||||||
|
rm -rf /usr/lib/systemd/system/im-server.service
|
||||||
|
|
||||||
|
if [ -d /var/lib/im-server/h2db ]; then
|
||||||
|
echo "IM embed db file not deleted in path /var/lib/im-server/h2db, if you don't need it anymore, please remove it manually"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d /var/lib/im-server/media ]; then
|
||||||
|
echo "IM embed media files not deleted in path /var/lib/im-server/media, if you don't need it anymore, please remove it manually"
|
||||||
|
fi
|
||||||
|
|
||||||
|
systemctl daemon-reload
|
||||||
|
|
||||||
@@ -1,82 +1,82 @@
|
|||||||
@ECHO OFF
|
@ECHO OFF
|
||||||
|
|
||||||
set "CURRENT_DIR=%cd%"
|
set "CURRENT_DIR=%cd%"
|
||||||
set "WILDFIRECHAT_HOME=%CURRENT_DIR%"
|
set "WILDFIRECHAT_HOME=%CURRENT_DIR%"
|
||||||
if exist "%WILDFIRECHAT_HOME%\bin\wildfirechat.bat" goto okHome
|
if exist "%WILDFIRECHAT_HOME%\bin\wildfirechat.bat" goto okHome
|
||||||
cd ..
|
cd ..
|
||||||
set "WILDFIRECHAT_HOME=%cd%"
|
set "WILDFIRECHAT_HOME=%cd%"
|
||||||
set "CURRENT_DIR=%cd%"
|
set "CURRENT_DIR=%cd%"
|
||||||
:gotHome
|
:gotHome
|
||||||
if exist "%WILDFIRECHAT_HOME%\bin\wildfirechat.bat" goto okHome
|
if exist "%WILDFIRECHAT_HOME%\bin\wildfirechat.bat" goto okHome
|
||||||
echo The WILDFIRECHAT_HOME environment variable is not defined correctly
|
echo The WILDFIRECHAT_HOME environment variable is not defined correctly
|
||||||
echo This environment variable is needed to run this program
|
echo This environment variable is needed to run this program
|
||||||
goto end
|
goto end
|
||||||
:okHome
|
:okHome
|
||||||
|
|
||||||
rem Set JavaHome if it exists
|
rem Set JavaHome if it exists
|
||||||
if exist { "%JAVA_HOME%\bin\java" } (
|
if exist { "%JAVA_HOME%\bin\java" } (
|
||||||
set "JAVA="%JAVA_HOME%\bin\java""
|
set "JAVA="%JAVA_HOME%\bin\java""
|
||||||
) else {
|
) else {
|
||||||
set "JAVA="java""
|
set "JAVA="java""
|
||||||
}
|
}
|
||||||
|
|
||||||
echo Using JAVA_HOME: "%JAVA_HOME%"
|
echo Using JAVA_HOME: "%JAVA_HOME%"
|
||||||
echo Using WILDFIRECHAT_HOME: "%WILDFIRECHAT_HOME%"
|
echo Using WILDFIRECHAT_HOME: "%WILDFIRECHAT_HOME%"
|
||||||
|
|
||||||
rem set LOG_CONSOLE_LEVEL=info
|
rem set LOG_CONSOLE_LEVEL=info
|
||||||
rem set LOG_FILE_LEVEL=fine
|
rem set LOG_FILE_LEVEL=fine
|
||||||
set JAVA_OPTS=
|
set JAVA_OPTS=
|
||||||
set JAVA_OPTS_SCRIPT=-XX:+HeapDumpOnOutOfMemoryError -Djava.awt.headless=true
|
set JAVA_OPTS_SCRIPT=-XX:+HeapDumpOnOutOfMemoryError -Djava.awt.headless=true
|
||||||
set WILDFIRECHAT_PATH=%WILDFIRECHAT_HOME%
|
set WILDFIRECHAT_PATH=%WILDFIRECHAT_HOME%
|
||||||
set LOG_FILE=%WILDFIRECHAT_HOME%\config\log4j2.xml
|
set LOG_FILE=%WILDFIRECHAT_HOME%\config\log4j2.xml
|
||||||
set HZ_CONF_FILE=%WILDFIRECHAT_HOME%\config\hazelcast.xml
|
set HZ_CONF_FILE=%WILDFIRECHAT_HOME%\config\hazelcast.xml
|
||||||
set C3P0_CONF_FILE=%WILDFIRECHAT_HOME%\config\c3p0-config.xml
|
set C3P0_CONF_FILE=%WILDFIRECHAT_HOME%\config\c3p0-config.xml
|
||||||
|
|
||||||
rem Use the Hotspot garbage-first collector.
|
rem Use the Hotspot garbage-first collector.
|
||||||
set JAVA_OPTS=%JAVA_OPTS% -XX:+UseG1GC
|
set JAVA_OPTS=%JAVA_OPTS% -XX:+UseG1GC
|
||||||
|
|
||||||
rem Have the JVM do less remembered set work during STW, instead
|
rem Have the JVM do less remembered set work during STW, instead
|
||||||
rem preferring concurrent GC. Reduces p99.9 latency.
|
rem preferring concurrent GC. Reduces p99.9 latency.
|
||||||
set JAVA_OPTS=%JAVA_OPTS% -XX:G1RSetUpdatingPauseTimePercent=5
|
set JAVA_OPTS=%JAVA_OPTS% -XX:G1RSetUpdatingPauseTimePercent=5
|
||||||
|
|
||||||
rem Main G1GC tunable: lowering the pause target will lower throughput and vise versa.
|
rem Main G1GC tunable: lowering the pause target will lower throughput and vise versa.
|
||||||
rem 200ms is the JVM default and lowest viable setting
|
rem 200ms is the JVM default and lowest viable setting
|
||||||
rem 1000ms increases throughput. Keep it smaller than the timeouts.
|
rem 1000ms increases throughput. Keep it smaller than the timeouts.
|
||||||
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxGCPauseMillis=500
|
set JAVA_OPTS=%JAVA_OPTS% -XX:MaxGCPauseMillis=500
|
||||||
|
|
||||||
rem Optional G1 Settings
|
rem Optional G1 Settings
|
||||||
|
|
||||||
rem Save CPU time on large (>= 16GB) heaps by delaying region scanning
|
rem Save CPU time on large (>= 16GB) heaps by delaying region scanning
|
||||||
rem until the heap is 70% full. The default in Hotspot 8u40 is 40%.
|
rem until the heap is 70% full. The default in Hotspot 8u40 is 40%.
|
||||||
rem set JAVA_OPTS=%JAVA_OPTS% -XX:InitiatingHeapOccupancyPercent=70
|
rem set JAVA_OPTS=%JAVA_OPTS% -XX:InitiatingHeapOccupancyPercent=70
|
||||||
|
|
||||||
rem For systems with > 8 cores, the default ParallelGCThreads is 5/8 the number of logical cores.
|
rem For systems with > 8 cores, the default ParallelGCThreads is 5/8 the number of logical cores.
|
||||||
rem Otherwise equal to the number of cores when 8 or less.
|
rem Otherwise equal to the number of cores when 8 or less.
|
||||||
rem Machines with > 10 cores should try setting these to <= full cores.
|
rem Machines with > 10 cores should try setting these to <= full cores.
|
||||||
rem set JAVA_OPTS=%JAVA_OPTS% -XX:ParallelGCThreads=16
|
rem set JAVA_OPTS=%JAVA_OPTS% -XX:ParallelGCThreads=16
|
||||||
|
|
||||||
rem By default, ConcGCThreads is 1/4 of ParallelGCThreads.
|
rem By default, ConcGCThreads is 1/4 of ParallelGCThreads.
|
||||||
rem Setting both to the same value can reduce STW durations.
|
rem Setting both to the same value can reduce STW durations.
|
||||||
rem set JAVA_OPTS=%JAVA_OPTS% -XX:ConcGCThreads=16
|
rem set JAVA_OPTS=%JAVA_OPTS% -XX:ConcGCThreads=16
|
||||||
|
|
||||||
rem rem GC logging options -- uncomment to enable
|
rem rem GC logging options -- uncomment to enable
|
||||||
|
|
||||||
rem set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintGCDetails
|
rem set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintGCDetails
|
||||||
rem set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintGCDateStamps
|
rem set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintGCDateStamps
|
||||||
rem set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintHeapAtGC
|
rem set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintHeapAtGC
|
||||||
rem set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintTenuringDistribution
|
rem set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintTenuringDistribution
|
||||||
rem set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintGCApplicationStoppedTime
|
rem set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintGCApplicationStoppedTime
|
||||||
rem set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintPromotionFailure
|
rem set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintPromotionFailure
|
||||||
rem set JAVA_OPTS=%JAVA_OPTS% -XX:PrintFLSStatistics=1
|
rem set JAVA_OPTS=%JAVA_OPTS% -XX:PrintFLSStatistics=1
|
||||||
rem set JAVA_OPTS=%JAVA_OPTS% -XX:+UseGCLogFileRotation
|
rem set JAVA_OPTS=%JAVA_OPTS% -XX:+UseGCLogFileRotation
|
||||||
rem set JAVA_OPTS=%JAVA_OPTS% -XX:NumberOfGCLogFiles=10
|
rem set JAVA_OPTS=%JAVA_OPTS% -XX:NumberOfGCLogFiles=10
|
||||||
rem set JAVA_OPTS=%JAVA_OPTS% -XX:GCLogFileSize=10M"
|
rem set JAVA_OPTS=%JAVA_OPTS% -XX:GCLogFileSize=10M"
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo 请设置JVM参数Xmx和Xms!!!
|
echo 请设置JVM参数Xmx和Xms!!!
|
||||||
echo
|
echo
|
||||||
|
|
||||||
rem set JAVA_OPTS=%JAVA_OPTS% -Xmx2G
|
rem set JAVA_OPTS=%JAVA_OPTS% -Xmx2G
|
||||||
rem set JAVA_OPTS=%JAVA_OPTS% -Xms2G
|
rem set JAVA_OPTS=%JAVA_OPTS% -Xms2G
|
||||||
|
|
||||||
%JAVA% -server %JAVA_OPTS% %JAVA_OPTS_SCRIPT% -Dlog4j.configurationFile=%LOG_FILE% -Dcom.mchange.v2.c3p0.cfg.xml=%C3P0_CONF_FILE% -Dhazelcast.configuration=file:%HZ_CONF_FILE% -Dwildfirechat.path=%WILDFIRECHAT_PATH% -cp %WILDFIRECHAT_HOME%\lib\* cn.wildfirechat.server.Server
|
%JAVA% -server %JAVA_OPTS% %JAVA_OPTS_SCRIPT% -Dlog4j.configurationFile=%LOG_FILE% -Dcom.mchange.v2.c3p0.cfg.xml=%C3P0_CONF_FILE% -Dhazelcast.configuration=%HZ_CONF_FILE% -Dwildfirechat.path=%WILDFIRECHAT_PATH% -cp %WILDFIRECHAT_HOME%\lib\* cn.wildfirechat.server.Server
|
||||||
|
|||||||
@@ -34,11 +34,13 @@ else
|
|||||||
fi
|
fi
|
||||||
export JAVA
|
export JAVA
|
||||||
|
|
||||||
LOG_FILE=$WILDFIRECHAT_HOME/config/log4j2.xml
|
WILDFIRECHAT_CONFIG_PATH=$WILDFIRECHAT_HOME
|
||||||
HZ_CONF_FILE=$WILDFIRECHAT_HOME/config/hazelcast.xml
|
|
||||||
C3P0_CONF_FILE=$WILDFIRECHAT_HOME/config/c3p0-config.xml
|
LOG_FILE=$WILDFIRECHAT_CONFIG_PATH/config/log4j2.xml
|
||||||
|
HZ_CONF_FILE=$WILDFIRECHAT_CONFIG_PATH/config/hazelcast.xml
|
||||||
|
C3P0_CONF_FILE=$WILDFIRECHAT_CONFIG_PATH/config/c3p0-config.xml
|
||||||
|
|
||||||
|
|
||||||
WILDFIRECHAT_PATH=$WILDFIRECHAT_HOME/
|
|
||||||
#LOG_CONSOLE_LEVEL=info
|
#LOG_CONSOLE_LEVEL=info
|
||||||
#LOG_FILE_LEVEL=fine
|
#LOG_FILE_LEVEL=fine
|
||||||
JAVA_OPTS_SCRIPT="-XX:+HeapDumpOnOutOfMemoryError -Djava.awt.headless=true"
|
JAVA_OPTS_SCRIPT="-XX:+HeapDumpOnOutOfMemoryError -Djava.awt.headless=true"
|
||||||
@@ -91,4 +93,4 @@ echo ""
|
|||||||
#JAVA_OPTS="$JAVA_OPTS -Xms2G"
|
#JAVA_OPTS="$JAVA_OPTS -Xms2G"
|
||||||
|
|
||||||
|
|
||||||
$JAVA -server $JAVA_OPTS $JAVA_OPTS_SCRIPT -Dlog4j.configurationFile="file:$LOG_FILE" -Dlog4j2.formatMsgNoLookups=true -Dcom.mchange.v2.c3p0.cfg.xml="$C3P0_CONF_FILE" -Dhazelcast.configuration="file:$HZ_CONF_FILE" -Dwildfirechat.path="$WILDFIRECHAT_PATH" -cp "$WILDFIRECHAT_HOME/lib/*" cn.wildfirechat.server.Server
|
$JAVA -server $JAVA_OPTS $JAVA_OPTS_SCRIPT -Dlog4j.configurationFile="file:$LOG_FILE" -Dlog4j2.formatMsgNoLookups=true -Dcom.mchange.v2.c3p0.cfg.xml="$C3P0_CONF_FILE" -Dhazelcast.configuration=$HZ_CONF_FILE -Dwildfirechat.path="$WILDFIRECHAT_CONFIG_PATH" -cp "$WILDFIRECHAT_HOME/lib/*" cn.wildfirechat.server.Server
|
||||||
|
|||||||
+60
-18
@@ -2,29 +2,71 @@
|
|||||||
除了命令行方式直接执行IM服务外,还可以以linux systemd service方式来运行,注意以这种方式运行,im服务的配置还是需要按照常规方法来配置。
|
除了命令行方式直接执行IM服务外,还可以以linux systemd service方式来运行,注意以这种方式运行,im服务的配置还是需要按照常规方法来配置。
|
||||||
|
|
||||||
## 获取软件包
|
## 获取软件包
|
||||||
如果是社区版可以下载野火release或则会自己源码编译,得到软件压缩包```distribution-bundle-tar.tar.gz```。如果是专业版使用专业版邮件里的链接下载软件压缩包,下载后先解压一次,得到```distribution-bundle-tar.tar.gz```压缩包。
|
如果是社区版可以下载野火release或则会自己源码编译,得到软件压缩包```distribution-bundle-tar.tar.gz```、```im-server.deb```和```im-server.rpm```。如果是专业版使用专业版邮件里的链接下载软件压缩包,下载后先解压一次,得到```distribution-bundle-tar.tar.gz```、```im-server.deb```和```im-server.rpm```。
|
||||||
|
> ```im-server.deb```和```im-server.rpm```文件可能带有版本号,下面使用过程中,请注意修正为实际的文件名称。
|
||||||
|
|
||||||
## 部署软件包
|
## 手动部署
|
||||||
创建```/usr/local/im-server```目录,把软件包解压到这个目录下。解压后这个目录下有```bin```、```config```、```lib```等目录。
|
### 依赖
|
||||||
> 专业版软件包压缩了2次,先解压出```distribution-bundle-tar.tar.gz```,再拷贝到IM目录再次解压,所以注意确认目录下有bin、config等目录才对。
|
野火IM依赖JRE1.8手动部署需要手动安装JRE1.8,确保命令:```java -version```能看到正确的java版本信息才行。
|
||||||
|
|
||||||
## 放置Server File
|
### 部署软件包
|
||||||
把```im-server.service```放到```/usr/lib/systemd/system/```目录下。
|
创建```/opt/im-server```目录,把软件包```distribution-bundle-tar.tar.gz```解压到这个目录下。解压后这个目录下有```bin```、```config```、```lib```、```systemd```等目录。
|
||||||
|
|
||||||
|
### 放置systemd server file
|
||||||
|
把```systemd```目录下的```im-server.service```文件放到```/usr/lib/systemd/system/```目录下。然后执行命令```sudo systemctl daemon-reload```。
|
||||||
|
|
||||||
|
### 目录结构
|
||||||
|
所有目录都在```/opt/im-server```目录下。包括日志目录、配置目录等。
|
||||||
|
|
||||||
|
### 测试
|
||||||
|
根据下面管理服务的说明,启动服务,查看控制台日志,确认启动没有异常,服务器本地执行 ```curl -v http://127.0.0.1/api/version``` 能够返回版本的JSON信息。
|
||||||
|
|
||||||
|
## 安装部署
|
||||||
|
### 依赖
|
||||||
|
安装包安装将会自动安装依赖,不需要手动安装java。如果服务器上有其他版本的Java,请注意可能的冲突问题。
|
||||||
|
|
||||||
|
### 部署软件包
|
||||||
|
可以直接安装```deb```和```rpm```格式的安装包,在debian系的linux系统(Ubuntu等使用```apt```命令安装软件的系统)中,使用命令:
|
||||||
|
```shell
|
||||||
|
sudo apt install ./im-server.deb
|
||||||
|
```
|
||||||
|
|
||||||
|
在红帽系的linux系统(Centos等使用```yum```命令安装软件的系统)中,使用命令:
|
||||||
|
```shell
|
||||||
|
sudo yum install ./im-server.rpm
|
||||||
|
```
|
||||||
|
|
||||||
|
注意在上述两个命令中,都使用的是本地安装,注意安装包名前的```./```路径。如果使用```dpkg -i ./im-server.deb```命令将不会安装依赖。
|
||||||
|
|
||||||
|
### 目录结构
|
||||||
|
* /etc/im-server/config 配置文件目录
|
||||||
|
* /opt/im-server 程序目录
|
||||||
|
* /var/log/im-server 日志目录
|
||||||
|
* /var/lib/im-server/h2db H2数据库目录,如果使用mysql则不会使用
|
||||||
|
* /var/lib/im-server/media 内置对象存储数据目录,如果使用非内置,则目录不会使用。
|
||||||
|
|
||||||
|
|
||||||
|
### 测试
|
||||||
|
根据下面管理服务的说明,启动服务,查看控制台日志,确认启动没有异常,服务器本地执行 ```curl -v http://127.0.0.1/api/version``` 能够返回版本的JSON信息。
|
||||||
|
|
||||||
## 管理服务
|
## 管理服务
|
||||||
* 刷新配置,当安装或者更新后需要执行: ```sudo systemctl daemon-reload```
|
* 刷新配置,当安装或者更新后需要执行: ```sudo systemctl daemon-reload```
|
||||||
* 启动服务: ```sudo systemctl start im-server.service```
|
* 启动服务: ```sudo systemctl start im-server```
|
||||||
* 停止服务: ```sudo systemctl stop im-server.service```
|
* 停止服务: ```sudo systemctl stop im-server```
|
||||||
* 重启服务: ```sudo systemctl restart im-server.service```
|
* 重启服务: ```sudo systemctl restart im-server```
|
||||||
* 查看服务状态:```sudo systemctl status im-server.service```
|
* 查看服务状态:```sudo systemctl status im-server```
|
||||||
* 设置开机自启动:```sudo systemctl enable im-server.service```
|
* 设置开机自启动:```sudo systemctl enable im-server```
|
||||||
* 禁止开机自启动:```sudo systemctl disable im-server.service```
|
* 禁止开机自启动:```sudo systemctl disable im-server```
|
||||||
* 查看控制台日志: ```journalctl -f -u im-server.service```
|
* 查看控制台日志: ```journalctl -f -u im-server```
|
||||||
|
|
||||||
## 日志
|
## 修改服务内存大小
|
||||||
日志文件在```/usr/local/im-server/logs```目录下。如果需要提供日志给野火官方,请把这个目录下的日志和制台日志(```journalctl -f -u im-server.service```)一起发给野火。
|
修改```/opt/im-server/bin/wildfirechat.sh```文件的倒数3、4行。打开Xmx和Xms配置,设置为合适的内存大小。
|
||||||
|
|
||||||
也可以把日志放到```/var/log/im-server```目录下,可以修改```/usr/local/im-server/config/log4j2.xml```修改日志的路径。
|
|
||||||
|
|
||||||
## 配置
|
## 配置
|
||||||
需要对IM服务配置来达到最好的执行效果,配置文件在````/usr/local/im-server/config````目录下。另外还可以设置服务的内存大小,修改```/usr/local/im-server/bin/wildfirechat.sh```文件的倒数3、4行。打开Xmx和Xms配置,设置为合适的内存大小。
|
需要对IM服务配置来达到最好的执行效果,手动部署配置文件在````/opt/im-server/config````目录下,安装部署的配置文件在````/etc/im-server/config````目录下。
|
||||||
|
|
||||||
|
## 日志
|
||||||
|
手动部署的日志文件在```/opt/im-server/logs```目录下,安装部署的日志在```/var/log/im-server```目录下。如果需要提供日志给野火官方,请把这个目录下的日志和制台日志(```journalctl -f -u im-server```)一起发给野火。
|
||||||
|
|
||||||
|
手动部署也可以修改目录,可以修改配置文件目录下的```config/log4j2.xml```修改日志的路径。
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
[Unit]
|
[Unit]
|
||||||
Description=WildfirechatIM
|
Description=IM Server
|
||||||
Documentation=https://docs.wildfirechat.cn
|
Documentation=https://docs.wildfirechat.cn
|
||||||
Wants=network-online.target
|
Wants=network-online.target
|
||||||
After=network-online.target
|
After=network-online.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
WorkingDirectory=/usr/local/im-server
|
WorkingDirectory=/opt/im-server
|
||||||
ExecStart=/bin/sh bin/wildfirechat.sh 2>&1
|
ExecStart=/bin/sh bin/wildfirechat.sh 2>&1
|
||||||
|
|
||||||
# Let systemd restart this service always
|
# Let systemd restart this service always
|
||||||
|
|||||||
Reference in New Issue
Block a user