(四)Linux環境部署(Centos+Nginx+Tomcat+Mysql)
因為在網上發現系統性、嚴謹(特別是在安全方面)的Linux部署方面的參考文章很少,於是整理以下六篇Linux環境部署的系列性文章,其為本人在實踐中,完整的搭建一個基於Linux系統上Centos+Nginx+Tomcat+Mysql+FTP的操作文件,梳理記錄如下,特別是在實踐中碰到的各種問題和容易出錯的地方,都做了重要標註和提醒(踩過的那些坑,我都特別標註出來);希望對於那些想要系統地完整搭建Linux環境的程式設計師們一個系統性的參考。但因大部分都是邊搭建邊記錄下的操作,必定有所疏漏,還望見諒; 如有問題和意見請幫忙在後面的評論中指出,萬分感謝!另整個搭建的過程中參考了網上許多優秀博主的優秀實踐,在文中末尾或者其他適當的地方都有所標註,如有必要,你可以按參考的連結閱讀參考的原文章。本文件一共分為6篇,這6個部分分別是:
這篇系列性文章將會在以後的實踐中持續地做修正和更新。
(在整理和記錄這些文件的時候,對於我這個曾經從來不寫部落格的程式設計師來說,我發現的確收穫良多,首先最重要的是對我的知識結構進行了一次重要的梳理和總結;另外,讓我的思維和邏輯更加縝密;第三,強化和加深記憶;四,共享和分享的精神。
最後,希望對你有用。)
(四)安裝Tomcat和JDK 以及 Nginx與Tomcat整合
安裝Tomcat和JDK
JDK:server-jre-7u75-linux-x64.gz
Tomcat: apache-tomcat-7.0.59.tar.gz
1、上傳apache-tomcat-7.0.59.tar.gz
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、檢視目前系統的jdk,rpm -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
5、source/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~5為on狀態就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實現虛擬目錄alias與root的用法區別參考文獻:
因為在網上發現系統性、嚴謹(特別是在安全方面)的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.
Linux(CentOS)學習筆記(四)——Linux命令
vi和vim命令 vi是一個文字編輯程式,不是排版工具,不過命令繁多而且功能強大,在簡單版的Linux系統中是沒有預裝vim的,vim跟vi相比,多了特殊字元的顏色區分。 Vi有三種基本工作模式: - 命令模式 - 文字輸入模式 - 末行模式 命令列模
api-gateway實踐(3)Linux環境啟動
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