CentOS7 下安裝 Nginx + MongoDB + Wildfly

一. 準備

如下是本次安裝用到的系統及軟件版本:html

安裝 Nginx 還須要到 Pcre 和 Zlib,它們的版本是:
centos

  • Pcre 8.37瀏覽器

  • Zlib 1.2.7
    服務器

二. 安裝操做系統

1. 安裝界面語言

CentOS 7 的安裝引導界面比較清晰,安裝界面語言選擇簡體中文便可。oracle

2. 安裝信息摘要

在安裝信息摘要界面有一個軟件選擇,裏面定義了一些經常使用場景的軟件包集合,這裏咱們選擇基礎設施服務器。

基礎設施服務器是沒有可視化操做界面的,若是須要可視化操做界面,能夠選擇帶 GUI 的服務器。

在安裝目標位置中,能夠根據須要自定義磁盤劃分。

CentOS 7 默認劃分磁盤建議的 boot 大小爲 500M,若是自定義劃分磁盤,建議也將 boot 設置爲 500M。

系統網卡默認是禁用的,能夠在 NETWORK & HOST NAME 中啓用。

設置完成後,就能夠繼續安裝了。

3. 安裝過程

在安裝過程當中,須要設置 root 用戶的密碼。若是上一步驟中選擇的是基礎設施服務器,整個安裝過程會很快結束,若是是選擇帶 GUI 的服務器,那麼安裝過程會稍慢一些,而且安裝完成後會要求設置一個普通用戶用於系統日常操做。

4. 安裝編譯器

在選擇安裝軟件集合時,若是沒有選擇附加的軟件包,系統默認是不帶 gcc 編譯器的,須要咱們本身安裝一下,安裝過程很簡單

# yum install gcc gcc-c++

三. 安裝 Nginx

安裝 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

配置 Nginx 主要須要作兩件事:1. 配置 Nginx 開機自啓動,2. 配置防火牆容許外網訪問 80 端口。

1. 配置 Nginx 開機啓動

在 /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

2. 配置防火牆

Nginx 安裝完成後,還須要在防火牆上配置規則以容許 80 端口請求經過。方法很簡單,執行

# firewall-cmd --permanent --zone=public --add-service=http

而後重啓防火牆便可生效

# systemctl restart firewalld.service

3. 測試

用瀏覽器訪問服務器地址,看到 Nginx 的歡迎界面說明配置成功。

五. 安裝並配置 MongoDB

將 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

將 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

將 Wildfly 解壓到 /usr/local/wildfly-9.0.1.Final

1. 修改啓動配置文件

# 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

2. 修改啓動腳本

# 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

修改 Wildfly 日誌目錄

編輯如下文件

# 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

八. 調優

以上步驟後,須要的軟件就安裝完成了,接下來須要進行一些設置來對系統進行優化。

1. MongoDB 調優

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 後能夠生效

2. ulimit 調優

編輯 /etc/security/limits.conf

# vi /etc/security/limits.conf

增長如下配置

* soft nofile 65536
* hard nofile 65536

保存後,退出當前用戶,從新登陸後執行

# ulimit -n

查看是否生效

相關文章
相關標籤/搜索