1. 程式人生 > >(四)Linux環境部署(Centos+Nginx+Tomcat+Mysql)

(四)Linux環境部署(Centos+Nginx+Tomcat+Mysql)

因為在網上發現系統性、嚴謹(特別是在安全方面)的Linux部署方面的參考文章很少,於是整理以下六篇Linux環境部署的系列性文章,其為本人在實踐中,完整的搭建一個基於Linux系統上Centos+Nginx+Tomcat+Mysql+FTP的操作文件,梳理記錄如下,特別是在實踐中碰到的各種問題和容易出錯的地方,都做了重要標註和提醒(踩過的那些坑,我都特別標註出來);希望對於那些想要系統地完整搭建Linux環境的程式設計師們一個系統性的參考。但因大部分都是邊搭建邊記錄下的操作,必定有所疏漏,還望見諒; 如有問題和意見請幫忙在後面的評論中指出,萬分感謝!另整個搭建的過程中參考了網上許多優秀博主的優秀實踐,在文中末尾或者其他適當的地方都有所標註,如有必要,你可以按參考的連結閱讀參考的原文章。本文件一共分為6篇,這6個部分分別是:

這篇系列性文章將會在以後的實踐中持續地做修正和更新。

(在整理和記錄這些文件的時候,對於我這個曾經從來不寫部落格的程式設計師來說,我發現的確收穫良多,首先最重要的是對我的知識結構進行了一次重要的梳理和總結;另外,讓我的思維和邏輯更加縝密;第三,強化和加深記憶;四,共享和分享的精神。

最後,希望對你有用。)

(四)安裝TomcatJDK 以及 NginxTomcat整合

安裝Tomcat和JDK

JDKserver-jre-7u75-linux-x64.gz

Tomcat: apache-tomcat-7.0.59.tar.gz

1、上傳apache-tomcat-7.0.59.tar.gz

server-jre-7u75-linux-x64.gz/usr/local

2、執行如下命令安裝tomcat

1.#cd /usr/local

2.#tar -zxvf apache-tomcat-7.0.59.tar.gz

解壓完成後將apache-tomcat-7.0.59重新命名為tomcat7

3、建立tomcat使用者,用來執行tomcat服務:

在生產環境用 root是不安全的,所以

#useradd -s /sbin/nologin tomcat

#chown -R tomcat:tomcat /usr/local/tomcat7

3、執行如下解壓安裝JDK:

1、檢視目前系統的jdkrpm -qa | grepjdk

解除安裝掉自帶openjdk

 [[email protected]~]# yum -y remove java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64

[[email protected]~]# yum -y remove java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64

2.# tar –zxvf server-jre-7u75-linux-x64.gz

解壓完成後將server-jre-7u75重新命名為jdk7

4、配置環境變數:編輯/etc下的profile檔案vi /etc/profile,加上如下內容:

JAVA_HOME="/usr/local/jdk7"

CLASS_PATH="$JAVA_HOME/lib:$JAVA_HOME/jre/lib"

PATH=".:$PATH:$JAVA_HOME/bin"

#Tomcat home

CATALINA_HOME="/usr/local/tomcat7"

export JAVA_HOME CATALINA_HOME

5source/etc/profile使設定生效。(或者#. /etc/profile或者#sh /etc/profile!或者#reboot命令重啟Linux,

java –version檢視jdk是否設定成功

6、啟動tomcat: [[email protected]]# /usr/local/tomcat7/bin/startup.sh


7
、新建檔案目錄/www為網站存放目錄,設定server.xml檔案,在Host name="localhost"處將appBase=的指向路徑改為”/www”
8
、建立index.jsp/www/,內容為:“My web!”  

9、設定開機啟動Tomcat

[[email protected] ~]#vi/etc/init.d/tomcat(將新建檔案,輸入下面的程式碼)

#!/bin/bash

#

# tomcatd     This shell script takes care of starting and stopping

#            standalone tomcat

#

# chkconfig: 345 91 10

# description: tomcat service

# processname: tomcatd

# config file:

# Source function library.

. /etc/rc.d/init.d/functions

# Source networking configuration.

. /etc/sysconfig/network

# Check that networking is up.

[ ${NETWORKING} = "no" ] &&exit 0

prog=tomcatd

export JAVA_HOME=/usr/local/jdk7

export CATALINA_HOME=/usr/local/tomcat7

PATH=$PATH:$JAVA_HOME/bin

STARTUP=$CATALINA_HOME/bin/startup.sh

SHUTDOWN=$CATALINA_HOME/bin/shutdown.sh

if [ ! -f $CATALINA_HOME/bin/startup.sh ]

then

       echo "CATALINA_HOME for tomcatd not available"

       exit

fi

start() {

        #Start daemons.

              echo-n $"Startting tomcat service: "

       daemon $STARTUP

       RETVAL=$?

       return $RETVAL

}

stop() {

        #Stop daemons.

       echo -n $"Stoping tomcat service: "

       $SHUTDOWN

              RETVAL=$?

       return $RETVAL

}

# See how we were called.

case "$1" in

       start)

              start

              ;;

       stop)

       stop

       ;;

       restart|reload)

        stop

       start

       RETVAL=$?

       ;;

       status)

       status $prog

       RETVAL=$?

       ;;

       *)

              echo$"Usage: $0 {start|stop|restart|status}"

       exit 1

esac

exit $RETVAL

:wq  儲存並退出

同樣的,設定檔案的訪問許可權:

chmod a+x /etc/init.d/tomcat  (a+x ==> all user can execute 所有使用者可執行)

chmod 755  /etc/init.d/tomcat當前使用者讀寫執行,其它讀+執行))

同樣的,將此命令加入到rc.local檔案中,這樣開機的時候tomcat就預設啟動了

vi /etc/rc.local

加入一行  /etc/init.d/tomcat start   儲存並退出,下次重啟會生效

參考:

chmod755  /etc/init.d/tomcat當前使用者讀寫執行,其它讀+執行

chkconfig--add tomcat

chkconfig--list tomcat

顯示:

tomcat 0:off1:off 2:on 3:on 4:on 5:on 6:off確認2~5on狀態就OK

啟動Tomcat

service tomcatstart

Nginx與Tomcat整合

實現的效果和達到的目的為:

1、有兩個域名www.aaa.com www.bbb.com 分別對應兩個兩個不同的網站,但是公用同一個Nginx和Tomcat伺服器;

2、所有的JSP等動態內容轉發到Tomcat處理,js、圖片等直接由Nginx負責處理;

3、上傳的圖片不在應用的根目錄下面,需要另外指定轉發(Nginx Alias 虛擬目錄)


Tomcat 配置:server.xml

<Host name="www.aaa.com"  appBase="/data/www"

           unpackWARs="true" autoDeploy="true">

        <Context path="/" docBase="/data/www/aaa"  debug="0"reloadable="true"></Context>

…. ….

<Host name="www.bbb.com"  appBase="/data/www"

   unpackWARs="true" autoDeploy="true">

<Context path="/"docBase="/data/www/bbb" debug="0" reloadable="true"></Context>

… ….

編輯Nginx安裝目錄下conf資料夾中的nginx.conf

server {

   listen       80;

   server_name www.aaa.com aaa.com;

    root/data/www/aaa; #設定網站的資源存放路徑

    indexindex.html index.htm index.jsp;

   #charset utf-8;

   access_log  /var/log/nginx/aaa.access.log  main;

    location / {

       index index.html index.htm index.jsp;

       root /data/www/aaa;

       proxy_set_header Host www.aaa.com; #此引數指向tomcatserver.xml中配置的Host name,以轉發給不同的Host處理.

       proxy_pass http://127.0.0.1:8080;

    }

   location ~ /Image/ {  #只有這種(加“~)才奏效

      root /data/www/;

    }

   #location ~ .*.jsp$ { #所有jsp的頁面均交由tomcat處理

   #     index index.jsp;

   #     proxy_pass http://127.0.0.1:8080; #轉向tomcat處理

   # }

   location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$  #設定訪問靜態檔案直接讀取不經過tomcat

    {

       expires      30d;

    }

   location ~ .*\.(js|css)?$

    {

       expires      1h;

    }

…….

…….

}

server {

   listen       80;

   server_name  www.bbb.com;

    root/data/www/bbb; #設定網站的資源存放路徑

    indexindex.html index.htm index.jsp;

   #charset utf-8;

   access_log  /var/log/nginx/bbb.access.log  main;

   location / {

       index index.html index.htm index.jsp;

       root /data/www/bbb;

       proxy_set_header Host www.bbb.com;

       proxy_pass http://127.0.0.1:8080;

    }

   #location ~ .*.jsp$ { #所有jsp的頁面均交由tomcat處理

   #     index index.jsp;

   #     proxy_pass http://127.0.0.1:8080; #轉向tomcat處理

   # }

   location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$  #設定訪問靜態檔案直接讀取不經過tomcat

    {

        expires     30d;

    }

   location ~ .*\.(js|css)?$

    {

       expires      1h;

}

… ….

重啟tomcat

[[email protected] BlueSky]# service tomcatrestart

重啟nginx

[[email protected] BlueSky]# service nginx restart

Nginx設定alias實現虛擬目錄aliasroot的用法區別

參考文獻:


因為在網上發現系統性、嚴謹(特別是在安全方面)的Linux部署方面的參考文章很少,於是整理以下六篇Linux環境部署的系列性文章,其為本人在實踐中,完整的搭建一個基於Linux系統上Centos+Nginx+Tomcat+Mysql+FTP的操作文件,梳理記錄如下,特別是在實踐中碰到的各種問題和容易出錯的地方,都做了重要標註和提醒(踩過的那些坑,我都特別標註出來);希望對於那些想要系統地完整搭建Linux環境的程式設計師們一個系統性的參考。但因大部分都是邊搭建邊記錄下的操作,必定有所疏漏,還望見諒; 如有問題和意見請幫忙在後面的評論中指出,萬分感謝!另整個搭建的過程中參考了網上許多優秀博主的優秀實踐,在文中末尾或者其他適當的地方都有所標註,如有必要,你可以按參考的連結閱讀參考的原文章。本文件一共分為6篇,這6個部分分別是:

這篇系列性文章將會在以後的實踐中持續地做修正和更新。

(在整理和記錄這些文件的時候,對於我這個曾經從來不寫部落格的程式設計師來說,我發現的確收穫良多,首先最重要的是對我的知識結構進行了一次重要的梳理和總結;另外,讓我的思維和邏輯更加縝密;第三,強化和加深記憶;四,共享和分享的精神。

最後,希望對你有用。)

相關推薦

Linux環境部署(Centos+Nginx+Tomcat+Mysql)

因為在網上發現系統性、嚴謹(特別是在安全方面)的Linux部署方面的參考文章很少,於是整理以下六篇Linux環境部署的系列性文章,其為本人在實踐中,完整的搭建一個基於Linux系統上Centos+Nginx+Tomcat+Mysql+FTP的操作文件,梳理記錄如下,特別是

測試環境搭建和部署Linux環境下搭建jdk+Tomcat+mysql環境和項目包的部署

pri 環境 安裝包 mysq 自己 進行 配置jdk linu 連接數   1.Linux環境(我搭建的是64位centos版本的linux系統)   1.下載並安裝一個VMware Workstation虛擬機,是搭建Linux系統的平臺。     2.下載一個

SpringCloud從入門到進階——生產環境下Eureka的完全分布式部署

分開 -s rip linux mas 此外 實例名 leo 版本 內容   由於前兩節的內容我們知道,開啟了preferIpAddress後,Eureka的偽分布式部署會提示replica不可用。這一節我們講解如何在生產環境下部署完全分布式的Eureka集群,確保開啟了p

SpringCloud從入門到進階——生產環境下Eureka的完全分散式部署

內容   由於前兩節的內容我們知道,開啟了preferIpAddress後,Eureka的偽分散式部署會提示replica不可用。這一節我們講解如何在生產環境下部署完全分散式的Eureka叢集,確保開啟了preferIpAddress後replica的可用性。 版本   IDE:IDEA 2017.2.

LinuxCentOS學習筆記——Linux命令

vi和vim命令 vi是一個文字編輯程式,不是排版工具,不過命令繁多而且功能強大,在簡單版的Linux系統中是沒有預裝vim的,vim跟vi相比,多了特殊字元的顏色區分。 Vi有三種基本工作模式: - 命令模式 - 文字輸入模式 - 末行模式 命令列模

api-gateway實踐3Linux環境啟動

iad system 啟動mysql lin edi sql 查看 redis mysq 1、啟動、查看mysql 1.1、啟動mysql systemctl status mariadb 1.2、查看mysql systemctl status m

Linux用戶管理Linux用戶管理

linux用戶管理Linux用戶管理一.用戶管理概念1.Linux系統用戶管理特點 多用戶平臺(ALT+F1--6) 單用戶模式中無需用戶 管理方法有兩種:命令、圖形工具、2.用戶賬號的分類

Linux系統管理初步Linux系統的防火墻-netfilter 編輯中

security 計數器 save ade 接收 emctl fec 運維 需要 一、Linux的防火墻 防火墻是日常應用中一個重要的維護內容,從防火墻開始我們才真正接觸生產環境,網絡安全越來越受重視,學好這部分內容是學好運維的重要一步。 一般情況下,桌面級環境中很少有人關

CentOS+Nginx+Tomcat+Mysql+PHP 環境搭建及系統部署

Linux Centos tomcat mysql nginx ==============安裝centos 7.0=======================選擇最小安裝,將相關的"調試工具"、“兼容性程序庫”、“開發工具”選中。此操作是為了減少後期安裝或編譯相關服

Linux 筆記 - 第十三章 Linux 系統日常管理之Linux 數據備份工具 rsync 和網絡配置

方法 target speed cnblogs rsync -av html links 布爾值 單個 博客地址:http://www.moonxy.com 一、前言 sync 命令是一個遠程數據同步工具,可通過 LAN/WAN 快速同步多臺主機間的文件,可以理解為 rem

bkt項目 搭建環境並測試之3添加日誌和 Thymeleaf 模板

model nal -- contex port tro XML 測試 fan 簡介:這個項目是為了學習SpringBoot以及學習SpringCloud用的,如果對你有什麽幫助,還是非常高興的。 GitHub : https://github.com/fankf/bk

java程式設計師菜鳥進階十六linux基礎入門linux下VIM文字編輯器使用

  linux下編寫配置檔案最好的編輯工具莫過於vim了。Vim的功能實在太多太全,Vim的很多功能也許我們很少用得到,真正為大家常用的功能可能只佔到所有功能的冰山一角。Vim終歸只是一個編寫程式碼或編輯文件的工具,所以只要掌握一些足夠我們使用的功能即可。 做個廣告

異數OS 織夢師-Xnign-- 挑戰100倍速Nginx,腳踩F5硬體負載均衡

. 異數OS 織夢師-Xnign(四)– 挑戰100倍速Nginx,腳踩F5硬體負載均衡 本文來自異數OS社群 github: https://github.com/yds086/HereticOS 異數OS社群QQ群: 652455784 異數OS-織夢師(

JMETER+ANT+JENKINS ——LINUX環境

前面講到windows 下JMETER+ANT+JENKINS  下的部署 ,今天來講講linux 下的部署: 1.修改hosts檔案 vim /etc/hosts 2.安裝JDK1.8 3.JMETER  安裝包    直接複製windows下的資料夾(給資

Docker入門實戰——基於jenkins部署微服務

一、部署前端Vue專案 第一步、編寫構建指令碼xxx-build.sh port=xxx #根據埠號查詢對應的pid pid=$(netstat -nlp | grep :$port | awk '{print $7}' | awk -F"/" '{ print $1 }'); #殺掉對應

Linux學習筆記-Linux常用命令-幫助文件

(四)Linux學習筆記-Linux常用命令-幫助文件 幫助文件 - -help(shell內部的命令幫助) man(系統手冊中的命令幫助) info(超級詳細的命令幫助) whatis(簡短的命令說明) apropos(

Linux常見目錄的作用

1.Linux常見目錄的作用 2.學習Linux中注意事項 linux命令嚴格區分大小寫 linux所有內容以檔案形式儲存,包括硬體        例:硬碟檔案是/dev/sda               光碟檔案是/dev/sr0 linux不靠副檔名

嵌入式攻城獅養成計劃Linux Shell基礎學習

 Emmmmm.先寫個目錄,慢慢更新。 一、VIM程式編輯器 1.Vim的三種模式 : 2.Vim常用按鍵說明 一般模式下 數字0或功能鍵Home:移動到這一行的最前面字元處 $或功能鍵End:移動到這一行的最後面字元處 G:移動

Docker自學紀實搭建LNMP部署wordpress

我們在工作中最常用的就是LNMP網站平臺 這個架構呢,是整個公司網站的核心 如果對於訪問量較小的網站,可以直接在伺服器上面部署 而如果是訪問量很大的網站,那負載就是個很大的問題。 要麼需要再買很多伺服器做節點,要麼就是現在流行的虛擬化。 我們知道一臺加滿硬碟和記憶體條的伺服器至少需要3W人民幣 這

android 敏捷開發系列——《環境部署

書接上文,上次我們瞭解了敏捷開發的架構,但是利用我們普通的開發工具Eclipse的Ant構建是無法完成專案依賴等工作的,所以在開發之前我們需要準備好以下開發環境  maven + nexus + hudson + git 注:本文基本環境 服務端系統為ubuntu13.0