系統環境:Centos 6.7
軟件環境:JDK-1.8.0_65、Nginx-1.10.3、Tomcat-8.5.8
文檔環境:/opt/app/ 存放軟件目錄,至於mkdir創建文件就不用再說了
首先將東西下載或上傳到服務器上,/opt/app/目錄存放Tomcat和JDK的包,分別是apache-tomcat-8.5.8.tar.gz和jdk-8u65-linux-x64.tar.gz,使用tar -zxvf xxx.tar.gz解壓,而nginx-1.10.3.tar.gz隨便找個地方存放着,不要放在一起,下面再說為什么!
1、配置JDK
編輯/etc/profile(vi /etc/profile),在最底下加上:
export JAVA_HOME=/opt/app/jdk1.8.0_65
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
使用source /etc/profile 令配置文件生效,通過java -version判斷是否成功即可
2、安裝Tomcat
其實都不算安裝,Tomcat解壓可用,配置好Java的環境變量之后進入Tomcat解壓后的目錄,進入其bin目錄,執行以下startup.sh文件即可,Tomcat默認端口是8080,通過ip:8080即可判斷 Tomcat是否成功啟動,或者通過netstat -nltp查看端口、jps查看java進程顯示Bootstrap都可以檢測Tomcat是否啟動
3、安裝Nginx
在任意地方解壓nginx-1.10.3.tar.gz,之所以不將該文件與JDK等文件存放一起是因為Nginx是編譯安裝,可以指定編譯安裝路徑,使三個軟件都存放在相同位置,沒有強迫症的童鞋可隨意。
在編譯安裝nginx之前需要先安裝一些依賴包,這是非常重要的。其中包括有C/C++的編譯等,由於使用的是centos系統,所以apt-get什么就不會出現,使用的是yum安裝
yum -y install gcc gcc-c++ autoconf automake
yum -y install zlib zlib-devel openssl opsenssl-devel pcre pcre-devel
安裝好依賴項之后,進入nginx解壓目錄,使用./configure --prefix=/opt/app/nginx配置nginx安裝目錄,之后使用make && make install進行編譯安裝,安裝好了之后,在/opt/app/中就會生成nginx目錄了。進入/opt/app/nginx/sbin,執行./nginx啟動nginx。Nginx默認端口是80,通過IP即可判斷Nginx是否成功啟動,或者通過nestat -nltp查看端口,ps -ef | grep nginx查看Nginx進程都可以檢測Nginx是否啟動
4、配置Nginx重定向到Tomcat
修改ngin配置文件,進入nginx安裝好的目錄里面的conf目錄,修改nginx.conf文件,vi nginx.conf,找到server的設置,在location一項中添加proxy_pass http://localhost:8080;如下圖,即將原本指向Nginx的地址重定向到Tomcat的地址,重新啟動Nginx,通過IP直接訪問即可重定向到Tomcat頁面,這就是簡單的Nginx+Tomcat整合。
5、配置Tomcat開機自啟動
服務器經常會不明原因地奔潰、重啟,尤其是雲服務器,如果每次都要自己手動啟動Tomcat那就太麻煩了,因為我們需要將Tomcat配置開機啟動。首先,在/etc/init.d/目錄下創建一個名為tomcat的文件,直接vi tomcat進入編輯即可,然后輸入一下內容(可復制):
#!/bin/bash
# chkconfig: 345 99 10
# description: Auto-starts tomcat
# /etc/init.d/tomcat
# Tomcat auto-start
# Source function library.
#. /etc/init.d/functions
# source networking configuration.
#. /etc/sysconfig/network
RETVAL=0
##這里是配置jre路徑
export JRE_HOME=/root/app/jdk1.8.0_65/jre
##這里是Tomcat路徑
export CATALINA_HOME=/opt/app/apache-tomcat-8.5.8
start()
{
if [ -f $CATALINA_HOME/bin/startup.sh ];
then
echo $"Starting Tomcat"
$CATALINA_HOME/bin/startup.sh
RETVAL=$?
echo " OK"
return $RETVAL
fi
}
stop()
{
if [ -f $CATALINA_HOME/bin/shutdown.sh ];
then
echo $"Stopping Tomcat"
$CATALINA_HOME/bin/shutdown.sh
RETVAL=$?
sleep 1
ps -fwwu tomcat | grep apache-tomcat|grep -v grep | grep -v PID | awk '{print $2}'|xargs kill -9
echo " OK"
# [ $RETVAL -eq 0 ] && rm -f /var/lock/...
return $RETVAL
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
echo $"Restaring Tomcat"
$0 stop
sleep 1
$0 start
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
;;
esac
exit $RETVAL
保存后配置一下權限chmod a+x tomcat(a+x參數表示 ==> all user can execute 所有用戶可執行)
然后這個腳本設置為開機啟動,chkconfig --add tomcat
通過service tomcat start/stop/restart就可以啟動/停止/重啟Tomcat了,而且還會有提示信息
6、配置Nginx開機自啟動
與Tomcat配置同理,在/etc/init.d/目錄下添加nginx腳本文件,輸入以下代碼:
#!/bin/bash
#
# nginx - this script starts and stops the nginx daemin
#
# chkconfig: - 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reverse
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /usr/local/nginx/conf/nginx.conf
# pidfile: /usr/local/nginx/logs/nginx.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
## Nginx路徑
nginx="/opt/app/nginx/sbin/nginx"
prog=$(basename $nginx)
## Nginx配置文件路徑
NGINX_CONF_FILE="/opt/app/nginx/conf/nginx.conf"
lockfile=/var/lock/subsys/nginx
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
restart() {
configtest || return $?
stop
start
}
reload() {
configtest || return $?
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$?
echo
}
force_reload() {
restart
}
configtest() {
$nginx -t -c $NGINX_CONF_FILE
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit 2
esac
保存后配置一下權限chmod a+x nginx(a+x參數表示 ==> all user can execute 所有用戶可執行)
然后這個腳本設置為開機啟動,chkconfig --add nginx
通過service nginx start/stop/restart就可以啟動/停止/重啟Nginx了,而且還會有提示信息
Centos6.7配置Nginx+Tomcat簡單整合到此完成了,其中很多配置方法並不唯一,選擇自己喜歡的方式即可。