以下是本次安装用到的系统及软件版本:
CentOS 7.0
Nginx 1.9.3
MongoDB 3.0.5
Wildfly 9.0.1
JDK 8u51
安装 Nginx 还需要到 Pcre 和 Zlib,它们的版本是:
Pcre 8.37
Zlib 1.2.7
CentOS 7 的安装引导界面比较清晰,安装界面语言选择简体中文即可。
在安装信息摘要界面有一个软件选择,里面定义了一些常用场景的软件包集合,这里我们选择基础设施服务器。
基础设施服务器是没有可视化操作界面的,如果需要可视化操作界面,可以选择带 GUI 的服务器。
在安装目标位置中,可以根据需要自定义磁盘划分。
CentOS 7 默认划分磁盘建议的 boot 大小为 500M,如果自定义划分磁盘,建议也将 boot 设置为 500M。
系统网卡默认是禁用的,可以在 NETWORK & HOST NAME 中启用。
设置完成后,就可以继续安装了。
在安装过程中,需要设置 root 用户的密码。如果上一步骤中选择的是基础设施服务器,整个安装过程会很快结束,如果是选择带 GUI 的服务器,那么安装过程会稍慢一些,并且安装完成后会要求设置一个普通用户用于系统平常操作。
在选择安装软件集合时,如果没有选择附加的软件包,系统默认是不带 gcc 编译器的,需要我们自己安装一下,安装过程很简单
# yum install gcc gcc-c++
安装 nginx 需要到 pcre 和 zlib,这里我们需要下载三个软件的源码包,已源码编译的方式进行安装和配置。
依次解压 nginx, pcre 和 zlib 后,进入 nginx 的目录执行:
# ./configure --prefix=/usr/local/nginx-1.9.3 --with-zlib=../zlib-1.2.7 --with-pcre=../pcre-8.37
--prefix 指定了 nginx 的安装目录
--with-zlib 指向的是 zlib 的源码包
--with-pcre 指向的是 pcre 的源码包
完成配置后,就可以进行安装了
# make && make install
安装完成后,需要建立相应的用户组及用户,并调整 Nginx 的目录权限和配置
修改 Nginx 配置
# vi /usr/local/nginx-1.9.3/conf/nginx.conf
将
#user nobody; #pid logs/nginx.pid; #access_log logs/access.log main;
去掉注释,并修改为
user nginx; pid /usr/local/nginx-1.9.3/nginx.pid; access_log /www/log/nginx/access.log main;
添加用户组及用户
# groupadd nginx # useradd -g nginx nginx
调整 Nginx 的目录权限
# chown nginx:nginx /usr/local/nginx-1.9.3 -R
然后创建 Nginx 的日志目录,并设置相应目录权限。
# mkdir -p /www/log/nginx # chown nginx:nginx /www/log/nginx -R
配置 Nginx 主要需要做两件事:1. 配置 Nginx 开机自启动,2. 配置防火墙允许外网访问 80 端口。
在 /lib/systemd/system 下新建一个 Nginx 的服务脚本
# touch /lib/systemd/system/nginx.service
然后键入以下内容
[Unit] Description=The nginx HTTP and reverse proxy server After=network.target remote-fs.target nss-lookup.target [Service] Type=forking PIDFile=/usr/local/nginx-1.9.3/nginx.pid ExecStartPre=/usr/local/nginx-1.9.3/sbin/nginx -t ExecStart=/usr/local/nginx-1.9.3/sbin/nginx ExecReload=/bin/kill -s HUP $MAINPID KillMode=process KillSignal=SIGQUIT TimeoutStopSec=5 PrivateTmp=true [Install] WantedBy=multi-user.target
保存后,执行
# systemctl enable nginx.service
使 Nginx 能够开机启动,要取消开机启动可以执行
# systemctl disable nginx.service
启动 Nginx 可以执行
# systemctl start nginx.service
重载 Nginx 配置可以执行
# systemctl reload nginx.service
查看 Nginx 运行状态可以执行
# systemctl status nginx.service
Nginx 安装完成后,还需要在防火墙上配置规则以允许 80 端口请求通过。方法很简单,执行
# firewall-cmd --permanent --zone=public --add-service=http
然后重启防火墙即可生效
# systemctl restart firewalld.service
用浏览器访问服务器地址,看到 Nginx 的欢迎界面说明配置成功。
将 MongoDB 解压到 /usr/local/mongodb-3.0.5
添加 MongoDB 的配置文件
# touch /usr/local/mongodb-3.0.5/mongodb.conf
键入以下内容
systemLog: destination: file path: /www/log/mongodb/mongodb.log logAppend: true processManagement: fork: true pidFilePath: /usr/local/mongodb-3.0.5/mongodb.pid storage: dbPath: /data/mongodb directoryPerDB: true
添加用户组及用户:
# groupadd mongodb # useradd -g mongodb mongodb
调整 MongoDB 的目录权限
# chown mongodb:mongodb /usr/local/mongodb-3.0.5 -R
然后创建 MongoDB 的数据目录和日志目录,并设置相应目录权限。
# mkdir -p /www/log/mongodb # chown mongodb:mongodb /www/log/mongodb -R # mkdir -p /data/mongodb # chown mongodb:mongodb /data/mongodb -R
在 /lib/systemd/system 下新建一个 MongoDB 的服务脚本
# touch /lib/systemd/system/mongodb.service
然后键入以下内容
[Unit] Description=Mongodb After=network.target remote-fs.target nss-lookup.target [Service] Type=forking PIDFile=/usr/local/mongodb-3.0.5/mongodb.pid ExecStartPre=/bin/rm -rf /data/mongodb/mongod.lock ExecStart=/bin/su - mongodb -c "/usr/local/mongodb-3.0.5/bin/mongod --config /usr/local/mongodb-3.0.5/mongodb.conf" ExecStop=/bin/kill -2 $MAINPID KillMode=process KillSignal=SIGQUIT TimeoutStopSec=5 PrivateTmp=true [Install] WantedBy=multi-user.target
保存后,执行以下命令添加开机启动
# systemctl enable mongodb.service
执行以下命令启动 MongoDB
# systemctl start mongodb.service
将 JDK 解压到 /usr/local/jdk1.8.0_51
在 /etc/profile 最后加入
export JAVA_HOME=/usr/local/jdk1.8.0_51 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
保存后执行
# source /etc/profile
是环境变量生效,通过
# java -version
检查是否配置成功
将 Wildfly 解压到 /usr/local/wildfly-9.0.1.Final
# vi /usr/local/wildfly-9.0.1.Final/bin/init.d/wildfly.conf
将以下配置
# JAVA_HOME="/usr/lib/jvm/default-java" # JBOSS_HOME="/opt/wildfly" # JBOSS_USER=wildfly
去掉注释,修改为
JAVA_HOME="/usr/local/jdk1.8.0_51" JBOSS_HOME="/usr/local/wildfly-9.0.1.Final" JBOSS_USER=www
# vi /usr/local/wildfly-9.0.1.Final/bin/init.d/wildfly-init-redhat.sh
找到
JBOSS_CONF="/etc/default/wildfly.conf"
修改为
JBOSS_CONF="/usr/local/wildfly-9.0.1.Final/bin/init.d/wildfly.conf"
找到
JBOSS_HOME=/opt/wildfly
修改为
JBOSS_HOME=/usr/local/wildfly-9.0.1.Final
找到
JBOSS_PIDFILE=/var/run/wildfly/wildfly.pid
修改为
JBOSS_PIDFILE=/usr/local/wildfly-9.0.1.Final/wildfly.pid
找到
JBOSS_CONSOLE_LOG=/var/log/wildfly/console.log
修改为
JBOSS_CONSOLE_LOG=/www/log/jboss/console.log
编辑以下文件
# vi /usr/local/wildfly-9.0.1.Final/standalone/configuration/standalone.xml
找到
<file relative-to="jboss.server.log.dir" path="server.log"/>
修改为
<file path="/www/log/jboss/server.log"/>
# groupadd www # useradd -g www www
调整 Wildfly 的目录权限
# chown www:www /usr/local/wildfly-9.0.1.Final -R
然后创建 Wildfly 的日志目录,并设置相应目录权限
# mkdir -p /www/log/jboss # chown www:www /www/log/jboss -R
在 /lib/systemd/system 下新建一个 Wildfly 的服务脚本
# touch /lib/systemd/system/jboss.service
然后键入以下内容
[Unit] Description=Wildfly After=network.target remote-fs.target nss-lookup.target [Service] Type=forking ExecStart=/usr/local/wildfly-9.0.1.Final/bin/init.d/wildfly-init-redhat.sh start ExecStop=/usr/local/wildfly-9.0.1.Final/bin/init.d/wildfly-init-redhat.sh stop [Install] WantedBy=multi-user.target
保存后,执行以下命令添加开机启动
# systemctl enable jboss.service
执行以下命令启动 Wildfly
# systemctl start jboss.service
以上步骤后,需要的软件就安装完成了,接下来需要进行一些设置来对系统进行优化。
MongoDB 运行建议禁用大内存页面(http://docs.mongodb.org/manual/tutorial/transparent-huge-pages/)
新建脚本
# touch /etc/init.d/disable-transparent-hugepages
键入以下内容
#!/bin/sh ### BEGIN INIT INFO # Provides: disable-transparent-hugepages # Required-Start: $local_fs # Required-Stop: # X-Start-Before: mongod mongodb-mms-automation-agent # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Disable Linux transparent huge pages # Description: Disable Linux transparent huge pages, to improve # database performance. ### END INIT INFO case $1 in start) if [ -d /sys/kernel/mm/transparent_hugepage ]; then thp_path=/sys/kernel/mm/transparent_hugepage elif [ -d /sys/kernel/mm/redhat_transparent_hugepage ]; then thp_path=/sys/kernel/mm/redhat_transparent_hugepage else return 0 fi echo 'never' > ${thp_path}/enabled echo 'never' > ${thp_path}/defrag unset thp_path ;; esac
保存后,修改文件的可执行权限
# chmod +x /etc/init.d/disable-transparent-hugepages
在 /lib/systemd/system 下新建一个启动脚本
# touch /lib/systemd/system/dthp.service
然后键入以下内容
[Unit] Description=Disable Transparent Huge Pages (THP) [Service] ExecStart=/etc/init.d/disable-transparent-hugepages start TimeoutStopSec=5 PrivateTmp=true [Install] WantedBy=multi-user.target
保存后,执行以下命令添加开机启动
# systemctl enable dthp.service
执行以下命令启动脚本
# systemctl start dthp.service
重启 MongoDB 后可以生效
编辑 /etc/security/limits.conf
# vi /etc/security/limits.conf
增加以下配置
* soft nofile 65536 * hard nofile 65536
保存后,退出当前用户,重新登录后执行
# ulimit -n
查看是否生效