一、tomcat
1.1 tomcat LNMT ※※※
網站代碼
PHP---LNMP
Java----LNMP
1.2 JVM
- Windows版本的QQ放到Linux是否可以運行?不能
- 代碼的可移植性:1份代碼可以運行在不同的系統中
- JAVA程序 會被放在1個叫虛擬機容器
- JVM(Java Virtual Machine):Java虛擬機,運行Java程序,1份代碼處處使用
1.2.1 JVM的核心環境---->jdk+tomcat
- JDK(Java Development Kit):Java程序運行環境
- tomcat(nginx)存放Java程序代碼
1.3 準備jdk和tomcat環境
1.3.1 環境準備
在阿里云購買一臺 ecs云服務器,做下簡單的優化,安裝基礎必備軟件
yum install -y tree vim wget bash-completion bash-completion-extras lrzsz net-tools sysstat iotop iftop htop unzip nc nmap telnet bc psmisc ntpdate cowsay sl sshpass pssh bind-utils
1.3.2 準備jdk環境(ecs云服務器上)
先上傳tomcat大禮包到/app/tools下,然后進行如下操作
[root@tomcat /app/tools]# unzip tomcat.zip
[root@tomcat /app/tools]# cd tomcat/
[root@tomcat /app/tools/tomcat]# tar xf jdk-8u60-linux-x64.tar.gz
[root@tomcat /app/tools/tomcat]# mkdir -p /application
[root@tomcat /app/tools/tomcat]# mv jdk1.8.0_60/ /application/
[root@tomcat /app/tools/tomcat]# ll /application/
total 4
drwxr-xr-x 8 10 143 4096 Aug 5 2015 jdk1.8.0_60
[root@tomcat /app/tools/tomcat]# ln -s /application/jdk1.8.0_60/ /application/jdk
[root@tomcat /app/tools/tomcat]# ll /application/
total 4
lrwxrwxrwx 1 root root 25 Jul 5 09:35 jdk -> /application/jdk1.8.0_60/
drwxr-xr-x 8 10 143 4096 Aug 5 2015 jdk1.8.0_60
[root@tomcat /app/tools/tomcat]#
1.3.3 配置JDK環境變量(為了方便)
[root@tomcat /app/tools/tomcat]# cat >>/etc/profile<<'EOF'
> export JAVA_HOME=/application/jdk
> export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
> export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/
> EOF
[root@tomcat /app/tools/tomcat]# source /etc/profile
[root@tomcat /app/tools/tomcat]# java -version \\驗證
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
注:當前使用的JDK有兩種:
Oracle JDK(目前)
OpenJDK
1.3.4 部署Tomcat
Tomcat 是Apache軟件基金會中的一個開源軟件(tomcat.apache.org)
Apache對應的web服務是httpd
[root@tomcat /app/tools/tomcat]# tar xf apache-tomcat-8.0.27.tar.gz
[root@tomcat /app/tools/tomcat]# mv apache-tomcat-8.0.27 /application/
[root@tomcat /app/tools/tomcat]# ln -s /application/apache-tomcat-8.0.27/ /application/tomcat
[root@tomcat /app/tools/tomcat]# ll /application/
total 8
drwxr-xr-x 9 root root 4096 Jul 5 09:42 apache-tomcat-8.0.27
lrwxrwxrwx 1 root root 25 Jul 5 09:35 jdk -> /application/jdk1.8.0_60/
drwxr-xr-x 8 10 143 4096 Aug 5 2015 jdk1.8.0_60
lrwxrwxrwx 1 root root 34 Jul 5 10:22 tomcat -> /application/apache-tomcat-8.0.27/
[root@tomcat /app/tools/tomcat]# echo "export TOMCAT_HOME=/application
[root@tomcat /app/tools/tomcat]# tail -1 /etc/profile
export TOMCAT_HOME=/application/tomcat
[root@tomcat /app/tools/tomcat]# source /etc/profile
1.3.5 檢測 tomcat jdk環境變量是否ok
[root@tomcat /app/tools/tomcat]# /application/tomcat/bin/version.sh
Using CATALINA_BASE: /application/tomcat
Using CATALINA_HOME: /application/tomcat
Using CATALINA_TMPDIR: /application/tomcat/temp
Using JRE_HOME: /application/jdk
Using CLASSPATH: /application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar
Server version: Apache Tomcat/8.0.27
Server built: Sep 28 2015 08:17:25 UTC
Server number: 8.0.27.0
OS Name: Linux
OS Version: 3.10.0-957.21.3.el7.x86_64
Architecture: amd64
JVM Version: 1.8.0_60-b27
JVM Vendor: Oracle Corporation
[root@tomcat /app/tools/tomcat]#
1.3.6 啟動tomcat
[root@tomcat /app/tools/tomcat]# /application/tomcat/bin/startup.sh
Using CATALINA_BASE: /application/tomcat
Using CATALINA_HOME: /application/tomcat
Using CATALINA_TMPDIR: /application/tomcat/temp
Using JRE_HOME: /application/jdk
Using CLASSPATH: /application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar
Tomcat started.
1.3.7 查看進程、檢查端口
[root@tomcat /app/tools/tomcat]# ss -lntup|grep java
tcp LISTEN 0 1 127.0.0.1:8005 *:* users:(("java",pid=13622,fd=67))
tcp LISTEN 0 100 *:8009 *:* users:(("java",pid=13622,fd=51))
tcp LISTEN 0 100 *:8080 *:* users:(("java",pid=13622,fd=46))
[root@tomcat /app/tools/tomcat]# ps -ef|grep java
root 13622 1 6 10:29 pts/1 00:00:02 /application/jdk/bin/java -Djava.util.logging.config.file=/application/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/application/tomcat/endorsed -classpath /application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/application/tomcat -Dcatalina.home=/application/tomcat -Djava.io.tmpdir=/application/tomcat/temp org.apache.catalina.startup.Bootstrap start
root 13661 13307 0 10:29 pts/1 00:00:00 grep --color=auto java
[root@tomcat /app/tools/tomcat]#
1.3.8 瀏覽器檢查
注:tomcat默認的端口是8080,如果你的環境是云服務器,必須配置8080的安全組,瀏覽器才能正常顯示
1.4 tomcat目錄結構
[root@tomcat /application/tomcat]# ll
total 112
drwxr-xr-x 2 root root 4096 Jul 5 09:42 bin ##主要存放命令,核心的命令有startup.sh(開)、shutdown.sh(關)、catalina.sh
drwxr-xr-x 3 root root 4096 Jul 5 10:29 conf ##存放配置文件,核心配置:server.xml
drwxr-xr-x 2 root root 4096 Jul 5 09:42 lib #tomcat以后安裝的插件(庫文件)
-rw-r--r-- 1 root root 57011 Sep 28 2015 LICENSE
drwxr-xr-x 2 root root 4096 Jul 5 10:29 logs #日志
-rw-r--r-- 1 root root 1444 Sep 28 2015 NOTICE
-rw-r--r-- 1 root root 6741 Sep 28 2015 RELEASE-NOTES
-rw-r--r-- 1 root root 16204 Sep 28 2015 RUNNING.txt
drwxr-xr-x 2 root root 4096 Jul 5 09:42 temp
drwxr-xr-x 7 root root 4096 Sep 28 2015 webapps #類似于nginx的站點目錄
drwxr-xr-x 3 root root 4096 Jul 5 10:29 work
[root@tomcat /application/tomcat]#
1.4.1 bin(主要存放命令)
1>catalina.sh
- 是shutdow.sh和startup.sh調用的時候,背后都在調用catalina.sh
- 修改tomcat參數、修改,修改這個文件
2>startup.sh
3>shutdown.sh #關閉tomcat之后,一定要檢查端口和進程,是否關閉
1.4.2 conf(存放配置文件)
properties 屬性 [?prɑp?rtiz]
1>server.xml :主配置文件,相當于nginx.conf ※ ※ ※
2>web.xml:配置擴展功能、額外功能
3>logging.properties:日志的一些屬性
4>tomcat-users.xml:tomcat管理端用戶和密碼的配置文件,用于測試環境;生產環境,禁止使用。
1.4.3 logs
Destroying 毀滅
startup 啟動
error 錯誤
1>catalina.out ※ ※ ※
tomcat最核心的日志,這個日志默認會被輪詢(定時切割),切割之后catalina.out日志內容不會被切割
2>catalina.2019-7-5.log #中間日期,是catalina.out的切割日志
3>localhost_access_log.2019-07-05.txt #訪問日志
1.5 配置tomcat管理端
- 開頭字符集
- 注釋:在xml格式中
- rolename 角色(admin-gui、manager-gui、host-gui)
1.5.1 配置tomcat-users.xml
[root@oldboy /application/tomcat]# cat conf/tomcat-users.xml
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users xmlns="http://tomcat.apache.org/xml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
version="1.0">
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<role rolename="host-gui"/>
<user username="oldboy" password="oldboy" roles="admin-gui,manager-gui,host-gui"/>
</tomcat-users>
1.5.2 重啟tomcat使配置生效
[root@tomcat /application/tomcat]# /application/tomcat/bin/shutdown.sh
Using CATALINA_BASE: /application/tomcat
Using CATALINA_HOME: /application/tomcat
Using CATALINA_TMPDIR: /application/tomcat/temp
Using JRE_HOME: /application/jdk
Using CLASSPATH: /application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar
[root@tomcat ~]# ps -ef|grep java
root 6305 6261 0 10:13 pts/0 00:00:00 grep --color=auto java
[root@tomcat ~]# ss -lntup|grep java
[root@tomcat /application/tomcat]# /application/tomcat/bin/startup.sh
Using CATALINA_BASE: /application/tomcat
Using CATALINA_HOME: /application/tomcat
Using CATALINA_TMPDIR: /application/tomcat/temp
Using JRE_HOME: /application/jdk
Using CLASSPATH: /application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@tomcat /application/tomcat]#
1.6 tomcat的主配置文件server.xml
- 8080 http協議的端口
- 8005 shutdown端口,telnet連接上這個端口,輸入SHUTDOWN暗號,關閉tomcat,比較危險,估默認只能本地連接8005端口
<Server port="8005" shutdown="1 SHUTDOWN">
- 管理端存放用戶名密碼的文件及存放方式
<Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" />
- 指定http協議的端口,https用8443端口
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" #超時時間,默認毫秒 redirectPort="8443" />
- 8008 AJP與Apache進行通訊用的
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
- 從<Host開始到</Host>結束,相當于nginx中server虛擬機主機
Tomcat Nginx Host name="localhost" server_name 域名 appBase="webapps" root 站點目錄
- unpackWARs="true" #自動解壓 app.war
- autoDeploy="true" #Deploy 部署 自動加載到tomcat
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <!-- SingleSignOn valve, share authentication between web applications Documentation at: /docs/config/valve.html --> <!-- <Valve className="org.apache.catalina.authenticator.SingleSignOn" /> --> <!-- Access log processes all example. Documentation at: /docs/config/valve.html Note: The pattern used is equivalent to using pattern="common" --> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> #指定日志的文件和日志內容的格式 </Host>
1.7 Tomcat部署app(應用)
1.7.1 準備數據庫
1>安裝mariadb-server
[root@tomcat ~]# yum install -y mariadb-server
2>啟動mariadb,并設置開機自啟
[root@tomcat ~]# systemctl start mariadb.service
[root@tomcat ~]# systemctl enable mariadb.service
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.
[root@tomcat ~]#
3>進入數據庫,創建數據庫和用戶
[root@tomcat ~]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.60-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
4>創建jpress數據庫
MariaDB [(none)]> create database jpress DEFAULT CHARACTER SET utf8;
Query OK, 1 row affected (0.00 sec)
5>查看jpress數據庫是否創建成功
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| jpress |
| mysql |
| performance_schema |
| test |
+--------------------+
5 rows in set (0.00 sec)
6>創建用戶,并查看
MariaDB [(none)]> grant all on jpress.* to jpress@'localhost' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> grant all on jpress.* to jpress@'172.16.%.%' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> select user,host from mysql.user;
+--------+------------+
| user | host |
+--------+------------+
| root | 127.0.0.1 |
| jpress | 172.16.%.% |
| root | ::1 |
| | localhost |
| jpress | localhost |
| root | localhost |
| | tomcat |
| root | tomcat |
+--------+------------+
8 rows in set (0.00 sec)
7>刪除為空的用戶
MariaDB [(none)]> drop user ''@localhost;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> drop user ''@tomcat;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> select user,host from mysql.user;
+--------+------------+
| user | host |
+--------+------------+
| root | 127.0.0.1 |
| jpress | 172.16.%.% |
| root | ::1 |
| jpress | localhost |
| root | localhost |
| root | tomcat |
+--------+------------+
6 rows in set (0.00 sec)
MariaDB [(none)]>
MariaDB [(none)]> Bye
[root@tomcat ~]#
8>測試數據庫
[root@tomcat ~]# mysql -ujpress -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 5.5.60-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> Bye
[root@tomcat ~]#
擴展 mysql -e 參數 非交互式執行SQL語句
[root@tomcat ~]# mysql -ujpress -p -e 'select user,host from mysql.user;'
Enter password:
ERROR 1142 (42000) at line 1: SELECT command denied to user 'jpress'@'localhost' for table 'user'
[root@tomcat ~]# mysql -ujpress -p -e 'select user();'
Enter password:
+------------------+
| user() |
+------------------+
| jpress@localhost |
+------------------+
[root@tomcat ~]#
1.7.2 準備app(war包)
1>首先移動war包到站點目錄,并重命名
##首先移動war包到站點目錄,并重命名
[root@tomcat /app/tools/tomcat]# mv jpress-web-newest.war /application/tomcat/webapps/jpress.war
[root@tomcat /app/tools/tomcat]# ll /application/tomcat/webapps/
total 20336
drwxr-xr-x 14 root root 4096 Jul 5 09:42 docs
drwxr-xr-x 6 root root 4096 Jul 5 09:42 examples
drwxr-xr-x 5 root root 4096 Jul 5 09:42 host-manager
drwxr-xr-x 7 root root 4096 Jul 5 12:43 jpress
-rw-r--r-- 1 root root 20797013 Mar 3 2017 jpress.war
drwxr-xr-x 5 root root 4096 Jul 5 09:42 manager
drwxr-xr-x 3 root root 4096 Jul 5 09:42 ROOT
[root@tomcat /app/tools/tomcat]#
2>在瀏覽器輸入http://47.92.92.94:8080/jpress/install安裝網站(注:這里的ip是我購買ecs自己分配的,每個每個人的不一樣)
安裝完成之后需要重啟tomcat
[root@tomcat /app/tools/tomcat]# pkill java #注:pkill java會將虛擬機中的所有Java進程都殺掉,如果你的虛擬機中有多個tomcat的話,請慎用;可以用/application/tomcat/bin/shutdown.sh
#停止tomcat進程之后一定要檢查進程和端口是否都已經沒有了,一定要保證都沒有了
[root@tomcat /app/tools/tomcat]# ps -ef|grep java
root 14452 13307 0 13:02 pts/1 00:00:00 grep --color=auto java
[root@tomcat /app/tools/tomcat]# ss -lntup|grep java
[root@tomcat /app/tools/tomcat]# /application/tomcat/bin/startup.sh
Using CATALINA_BASE: /application/tomcat
Using CATALINA_HOME: /application/tomcat
Using CATALINA_TMPDIR: /application/tomcat/temp
Using JRE_HOME: /application/jdk
Using CLASSPATH: /application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@tomcat /app/tools/tomcat]#
重啟tomcat之后就可以正常訪問網站了
網站地址:http://47.92.92.94:8080/jpress/
網站后臺地址:http://47.92.92.94:8080/jpress/admin/login
注:以上的數據庫在本地,要改為遠程服務器的修改db.properties文件就行
[root@tomcat /application/tomcat/webapps/jpress/WEB-INF/classes]# cat db.properties
#Auto create by JPress
#Fri Jul 05 13:01:50 CST 2019
db_name=jpress
db_host_port=3306
db_tablePrefix=jpress_
db_host=localhost
db_password=*****
db_user=*****
溫馨提示:
- 關閉Tomcat之后一定要檢查端口和進程是否完全關閉
- 如果沒有完全關閉,會導致再啟動tomcat時,會有大量的日志在catalina.out中,而且增加的非常快,最終會導致磁盤滿了
1.8 Tomcat與負載均衡
1個tomcat存放1個app
1個tomcat存放1個app
比如有2臺負載均衡,前面就必須要有個負載均衡
upstream
proxyupstream app_pools { server 10.0.0.7:8080; server 10.0.0.7:8081; server 10.0.0.7:8082; server 10.0.0.8:8080; }
1.9 Tomcat多實例
比如:有一臺機器,配置(1臺服務器 4路 志強金牌 2TB 16*600G sas 15k),在這臺機器上多運行幾個tomcat,并且端口不一樣
1.10 tomcat監控
1.10.1 命令行檢查
1>查看進程信息
[root@tomcat /application/tomcat/webapps/jpress/WEB-INF/classes]# ps -ef|grep java
root 14463 1 0 13:02 pts/1 00:00:19 /application/jdk/bin/java #Java命令本身
-Djava.util.logging.config.file=/application/tomcat/conf/logging.properties #指定日志配置文件
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.endorsed.dirs=/application/tomcat/endorsed
-classpath /application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar
-Dcatalina.base=/application/tomcat -Dcatalina.home=/application/tomcat #tomcat軟件的目錄
-Djava.io.tmpdir=/application/tomcat/temp org.apache.catalina.startup.Bootstrap #臨時目錄
start
如果要在上面添加一些參數,修改的文件是catalina.sh
2>jps -lvm #專門檢查Java進程
[root@tomcat /application/tomcat/bin]# jps -lvm
16744 org.apache.catalina.startup.Bootstrap start -
Djava.util.logging.config.file=/application/tomcat/conf/logging.properties -
Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -
Djava.endorsed.dirs=/application/tomcat/endorsed -
Dcatalina.base=/application/tomcat -Dcatalina.home=/application/tomcat -
Djava.io.tmpdir=/application/tomcat/temp
16813 sun.tools.jps.Jps -lvm -
Denv.class.path=.:/application/jdk/lib:/application/jdk/jre/lib:/application/
jdk/lib/tools.jar -Dapplication.home=/application/jdk1.8.0_60 -Xms8m
3>show-busy-java-threads.sh #顯示當前系統中 java進程、負載、cpu 使用率較高
ps -ef 進程信息
進程 process pid,實際相當于房子或空間
線程 thread,實際是處理用戶請求
查看進程和線程的關系,pstree -pa
1.10.2 開啟tomcat監控
應用場景:是用于zabbix監控tomcat zabbix監控tomcat的方法之一
1>開啟監控功能,在catalina.sh中的第二行加入以下內容
CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=12345
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname=IP地址"
分別代表的意思:
CATALINA_OPTS="$CATALINA_OPTS .*" #表示Java程序啟動的時候,增加的參數
-Dcom.sun.management.jmxremote #開啟tomcat遠程監控功能
-Dcom.sun.management.jmxremote.port=12345 #指定端口,什么都行,別跟現有的沖突就行
-Dcom.sun.management.jmxremote.authenticate=false #是否開啟認證模式(用戶名、密碼)
-Dcom.sun.management.jmxremote.ssl=false #是否開啟https
-Djava.rmi.server.hostname=IP地址" #監聽的地址(本地)。實際工作寫上服務器的內網ip地址;我們測試環境中,可以寫上服務器的公網ip
將上面的內容添加到catalina.sh中,然后重啟tomcat
[root@tomcat ~]# ss -lntup |grep java
[root@tomcat ~]# ss -lntup |grep java
tcp LISTEN 0 100 *:8009 : users:(("java",pid=17028,fd=54))
tcp LISTEN 0 50 *:34345 : users:(("java",pid=17028,fd=19))
tcp LISTEN 0 100 *:8080 : users:(("java",pid=17028,fd=50))
tcp LISTEN 0 50 *:33142 : users:(("java",pid=17028,fd=21))
tcp LISTEN 0 50 *:12345 : users:(("java",pid=17028,fd=20))
2>windows下面 通過java 命令 連接tomcat (模擬zabbix監控tomcat)
開發環境:jdk
命令1:jconsole
命令2:jvisualvm
二、云服務器
國內:阿里云、騰旭、華為
國外:aws(外企)
2.1 阿里云服務器的架構
2.2 專有名詞
專有名詞 | 含義 | |
---|---|---|
可用區 zone | 同一地區的不同機房 | |
地區 地域 region | 不同的地方 上海 北京 杭州 | |
實例 | 虛擬機 | |
RDS | 云數據庫 |
NAS和OSS的相同點和不同點:
- 都是存放用戶上傳的附件
- NAS是文件存儲,實現nfs共享存儲,價格比較貴
- OSS是對象存儲。大容量、訪問頻率高/低
- OSS的價格分為幾種:1>訪問頻率低、性能不高的就便宜點;2>要求實時性好、速度又快的就會貴點
- OSS的使用,有兩種方法:
- 1>把它真的的當對象存儲用,就是硬盤里的,當網盤用
- 2>通過程序調用,就是在程序代碼里寫,只要用戶傳數據,就存到OSS
2.3 購買ECS云服務器,同1.3.1 ※※※
2.4 購買RDS云數據庫 (數據庫遷移)※※※
2.4.1 購買RDS云數據庫的過程:
1>在阿里云中搜索RDS進行創建實例,以下只是我的一個簡單的配置例子,每個人可以根據自己的情況進行選擇
2>購買好RDS云數據庫之后,因為暫時沒有ip地址,故無法連接,可以點擊圖中的任意一個進入下一個頁面,先設置白名單,就可以獲得RDS的內網地址
3>進入白名單列表頁面,添加或修改已有的都可以
注:設置的白名單可以是多個ip或多個網段,中間用英文的逗號隔開,也可以直接寫0.0.0.0/0,所有的ip都可以,但這個不安全,不建議設置。
4>白名單設置成功之后,就可以看到內網地址了(每個人的都不一樣)
5>上面的內網地址是域名,要想知道具體的內網ip地址,去xshell中ping下就知道了
這樣RDS云數據庫就買好了
2.4.2 數據庫遷移:
1>從ECS云服務器里導出備份jpress數據庫到/root目錄下
[root@tomcat ~]# mysqldump -ujpress -p -B jpress >/root/jpress.sql
Enter password:
[root@tomcat ~]# ll
total 20
-rw-r--r-- 1 root root 17409 Jul 5 17:18 jpress.sql
[root@tomcat ~]#
2>遠程進入購買的RDS云數據庫中創建空的jpress數據庫
[root@tomcat ~]# mysql -uwwj_mysql -p -h rm-8vbzbcm62xy92g82q.mysql.zhangbei.rds.aliyuncs.com
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 1997
Server version: 5.7.25-log Source distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]> create database jpress DEFAULT CHARACTER SET utf8;
Query OK, 1 row affected (0.00 sec)
MySQL [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| jpress |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
MySQL [(none)]> show tables from jpress;
Empty set (0.00 sec)
MySQL [(none)]>
3>把備份的jpress數據庫還原到RDS云數據庫上,并查看
[root@tomcat ~]# mysql -uwwj_mysql -p -h rm-8vbzbcm62xy92g82q.mysql.zhangbei.rds.aliyuncs.com </root/jpress.sql
Enter password:
[root@tomcat ~]# mysql -uwwj_mysql -p -h rm-8vbzbcm62xy92g82q.mysql.zhangbei.rds.aliyuncs.com
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 2096
Server version: 5.7.25-log Source distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]> show tables from jpress;
+-------------------+
| Tables_in_jpress |
+-------------------+
| jpress_attachment |
| jpress_comment |
| jpress_content |
| jpress_mapping |
| jpress_metadata |
| jpress_option |
| jpress_taxonomy |
| jpress_user |
+-------------------+
8 rows in set (0.00 sec)
MySQL [(none)]>
4>停止ECS云服務器上的mysql服務
[root@tomcat ~]# systemctl stop mariadb.service
[root@tomcat ~]# systemctl disable mariadb.service
Removed symlink /etc/systemd/system/multi-user.target.wants/mariadb.service.
[root@tomcat ~]#
5>修改數據庫配置
vim /application/tomcat/webapps/jpress/WEB-INF/classes/db.properties
6>重啟tomcat服務
[root@tomcat ~]# pkill java #或/application/tomcat/bin/shutdown.sh
[root@tomcat ~]# ss -lntup|grep java
[root@tomcat ~]# ps -ef|grep java
root 15205 14908 0 17:32 pts/0 00:00:00 grep --color=auto java
[root@tomcat ~]# /application/tomcat/bin/startup.sh
Using CATALINA_BASE: /application/tomcat
Using CATALINA_HOME: /application/tomcat
Using CATALINA_TMPDIR: /application/tomcat/temp
Using JRE_HOME: /application/jdk
Using CLASSPATH: /application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@tomcat ~]#
7>測試數據庫是否遷移成功
打開部署好的jpress網站,刷新查看網站是否正常,再在網站隨便寫個文章,遠程進入RDS云數據庫中,查看數據是否存在
2.5 購買文件存儲NAS (部署nfs存儲)※※※
2.5.1 購買文件存儲NAS的過程
1>在阿里云中搜索NAS,如圖:
2>創建文件系統
3>文件系統創建好之后,添加掛載點
4>點擊文件系統列表中管理進入詳細頁面,可以看到掛載地址或掛載命令
到這里NAS文件存儲系統就購買好了,下面就到ECS云服務器中進行掛載
2.5.1 ECS云服務器中安裝nfs-utils準備進行掛載
1>安裝nfs-utils,啟動nfs-utils服務,并設置開機自啟
[root@tomcat ~]# yum install -y nfs-utils
[root@tomcat ~]# systemctl start nfs-utils
[root@tomcat ~]# systemctl enable nfs-utils
[root@tomcat ~]#
2>進行掛載測試
[root@tomcat ~]# mount -t nfs 9db184ad00-hrk84.cn-zhangjiakou.nas.aliyuncs.com:/ /mnt
[root@tomcat ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 3.1G 35G 9% /
devtmpfs 909M 0 909M 0% /dev
tmpfs 920M 0 920M 0% /dev/shm
tmpfs 920M 456K 919M 1% /run
tmpfs 920M 0 920M 0% /sys/fs/cgroup
tmpfs 184M 0 184M 0% /run/user/0
9db184ad00-hrk84.cn-zhangjiakou.nas.aliyuncs.com:/ 1.0P 0 1.0P 0% /mnt
[root@tomcat ~]#
3>掛載點遷移
[root@tomcat ~]# mv /application/tomcat/webapps/jpress/attachment/* /mnt
[root@tomcat ~]# ll /application/tomcat/webapps/jpress/attachment/
total 0
[root@tomcat ~]# umount /mnt
[root@tomcat ~]# mount -t nfs 9db184ad00-hrk84.cn-zhangjiakou.nas.aliyuncs.com:/ /application/tomcat/webapps/jpress/attachment/
[root@tomcat ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 40G 3.1G 35G 9% /
devtmpfs 909M 0 909M 0% /dev
tmpfs 920M 0 920M 0% /dev/shm
tmpfs 920M 456K 919M 1% /run
tmpfs 920M 0 920M 0% /sys/fs/cgroup
tmpfs 184M 0 184M 0% /run/user/0
9db184ad00-hrk84.cn-zhangjiakou.nas.aliyuncs.com:/ 1.0P 0 1.0P 0% /application/apache-tomcat-8.0.27/webapps/jpress/attachment
[root@tomcat ~]#
2.6 目前只部署了一臺web服務器(ECS云服務器),如果要多臺,將上面部署好網站的web服務器先做快照和鏡像,再根據鏡像創建多臺web服務器就可以
注意:
- 創建快照之前一定要檢查好這臺ECS云服務器里面的服務是否都設置開機自啟動,掛載是否永久掛載,否則后面根據鏡像創建的云服務器里面的服務都要單獨啟動,很麻煩
- 永久掛載可以寫入到/etc/fstab中,也可以寫入/etc/rc.d/rc.local中
- 對一些無法通過systemctl設置開機自啟動的服務,將他們的啟動方式寫入到/etc/rc.d/rc.local中
- 如果寫入到/etc/rc.d/rc.local中,就必須給/etc/rc.d/rc.local這個文件添加可執行權限
[root@tomcat ~]# cat /etc/rc.d/rc.local
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
touch /var/lock/subsys/local
source /etc/profile #注意:在啟動tomcat時,需要配置在/etc/profile中配置好環境變量,估這里需要source /etc/profile生效環境變量,否則無法啟動,也可以寫為: . /etc/profile
mount -t nfs 9db184ad00-hrk84.cn-zhangjiakou.nas.aliyuncs.com:/ /application/tomcat/webapps/jpress/attachment/
/application/tomcat/bin/startup.sh
[root@tomcat ~]# chmod +x /etc/rc.d/rc.local
[root@tomcat ~]# ll /etc/rc.d/rc.local
-rwxr-xr-x 1 root root 619 Jul 5 18:21 /etc/rc.d/rc.local
[root@tomcat ~]#
2.7 購買SLB負載均衡
2.7.1 購買SLB的過程
1>在阿里云中搜索SLB
2>創建負載均衡
3>選擇負載均衡的簡單配置(根據自己的情況來定)
4>購買好SLB負載均衡之后進行設置
到這里簡單的SLB云負載均衡就購買配置完成了
2.7.2 在兩臺web云服務器上簡單配置個頁面,然后在瀏覽器測試負載均衡
[root@tomcat ~]# echo web01 >/application/tomcat/webapps/ROOT/oldboy.jsp
[root@tomcat ~]#
[root@tomcat02 ~]# echo web02 >/application/tomcat/webapps/ROOT/oldboy.jsp
[root@tomcat02 ~]#
測試方法:可以試著將其中一臺web服務器上的tomcat停掉,然后瀏覽器頁面查看是否還能正常顯示