vi命令的基本操作:
按a進入編輯模式;
Ctrl+C終止編輯模式;
在非編輯模式按:wq 保存文件退出。
在非編輯模式按:q! 不保存退出。
在非編輯模式按dd,可刪除鼠標所在的當前行。
第一章 掛載硬盤
購買阿里雲CentOS主機
注意事項:最好選擇SSD硬盤。
建議買50G系統盤+ 數據盤,例如150G數據盤,單獨購買數據盤後,登錄CentOS主機需要掛載數據盤。掛載過程,用SSH工具登錄 CentOS:
查看硬盤:
fdisk -l 或fdisk -lu
顯示
可以看到/dev/vdb的硬盤大小爲161.1GB
硬盤格式化
確認數據盤/dev/vdb是新購買的沒有數據的硬盤,執行格式化命令:
mkfs -t ext4 /dev/vdb
ext4是文件系統格式,/dev/vdb是要格式化的硬盤
-t ext4 表示將分區格式化成ext4文件系統類型。
格式化硬盤後,需要掛載此硬盤
先用 df -l 命令查看掛載情況,顯示
FileSystem下未顯示/dev/vdb.
然後創建一個目錄/root/web,這個目錄以後用於存放網站程序,建目錄命令:
mkdir /root/web
然後將格式化的/dev/vdb盤與/root/web關聯。關聯命令:
mount -t ext4 /dev/vdb /root/web/
這時再用 df命令查看:
可看到/dev/vdb掛載到/root/web
如果取消掛載的目錄,可使用 umount /dev/vdb
啓動系統自動掛載硬盤
需要設置在啓動的時候自動掛載硬盤,這樣不用每次重啓機器都使用mount命令,首先查看下硬盤的UUID,使用命令: blkid 顯示:
複製/dev/vdb的UUID,編輯/etc/fstab,使用命令:
vim /etc/fstab
按一下a進入插入模式,在末尾增加:
UUID=db8cc13d-3854-4ea6-ac11-12d6b879698b /root/web ext4 defaults 0 1
然後按CRTL+C,再按:wq 並回車
測試自動掛載
cd /root/web
建個新目錄 mkdir test
如果重啓後,cd /root/web , 然後ls查看目錄內容,則應該有test目錄。
重啓使用 shutdown -r now 命令重啓機器。
安裝Nginx
參考http://www.linuxidc.com/Linux/2016-09/134907.htm
gcc安裝
yum install gcc-c++
2 PCRE pcre-devel 安裝
yum install -y pcre pcre-devel
3 zlib 安裝
yum install -y zlib zlib-devel
4 OpenSSL 安裝
yum install -y openssl openssl-devel
5、官網下載
到Nginx官方網站找nginx最新版本
https://nginx.org/en/download.html
目前最新版本爲nginx-1.13.3,複製這個版本的下載地址連接
https://nginx.org/download/nginx-1.13.3.tar.gz
使用wget下載:
wget https://nginx.org/download/nginx-1.13.3.tar.gz
然後解壓:
tar -zxvf nginx-1.13.3.tar.gz
解壓後,進入解壓目錄:
cd nginx-1.13.3
配置
進入瞭解壓目錄後,運行:
./configure
以上命令是默認安裝。
編譯安裝(在解壓的nginx-1.13.3目錄)
make
make install
查找安裝路徑
whereis nginx
顯示安裝的路徑爲/ur/local/nginx
啓動、停止nginx
cd /usr/local/nginx/sbin/
./nginx
./nginx -s stop
./nginx -s quit
./nginx -s reload
./nginx -s quit:此方式停止步驟是待nginx進程處理任務完畢進行停止。
./nginx -s stop:此方式相當於先查出nginx進程id再使用kill命令強制殺掉進程。
查詢nginx進程:
ps aux|grep nginx
重啓 nginx
1.先停止再啓動(推薦):
對 nginx 進行重啓相當於先停止再啓動,即先執行停止命令再執行啓動命令。如下:
./nginx -s quit
./nginx
2.重新加載配置文件:
當 ngin x的配置文件 nginx.conf 修改後,要想讓配置生效需要重啓 nginx,使用-s reload不用先停止 ngin x再啓動 nginx 即可將配置信息在 nginx 中生效,如下:
./nginx -s reload
啓動成功後,在瀏覽器可以看到這樣的頁面:
開機自啓動
即在rc.local增加啓動代碼就可以了。
vi /etc/rc.local
增加一行 /usr/local/nginx/sbin/nginx
設置執行權限:
chmod 755 rc.local
然後shutdown -r now 重啓測試nginx是否重啓後自動運行。
重啓後,ps -ef|grep nginx沒有發現進程。
發現/etc/rc.local是物理連接到 /erc/rc.d/rc.local
進入rc.d目錄,chmod 755 rc.local重啓後,查看nginx:
已經有nginx進程,然後在瀏覽器輸入這個nginx服務器的地址,顯示下面的頁面:
到此Nginx安裝成功。
後續還要爲Nginx做更多的設置,比如如何與tomcat程序關聯。
NFS安裝
NFS Server安裝:
NFS安裝包括NFS Server安裝和NFS Client端的安裝。
安裝NFS是爲了集羣環境下,多臺Tomcat應用可以把圖片、html、css,js等靜態資源文件統一存儲,無論從tomcat那個節點訪問網站都可以讀取到靜態資源。用戶無論從那個tomcat上傳圖片,另一個tomcat應用也能訪問到這個圖片。
1安裝nfs
yum -y install nfs-utils rpcbind
2、在服務器和客戶端兩臺機器上創建共享目錄/root/web/webapps/nfs
(爲了方便文件上傳,直接創建到tomcat的應用目錄中)
3、在服務器上編輯/etc/exports
vi /etc/exports
加上下面兩句:
/root/web/webapps/nfs/ 10.46.177.154(rw,no_root_squash,no_all_squash,sync)
/root/web/webapps/nfs/ 10.46.163.20(rw,no_root_squash,no_all_squash,sync)
以上10.開頭的IP地址是允許NFS 客戶端訪問的IP地址,可以寫內網地址。根據實際情況修改。
4 使剛纔的配置生效
exportfs -r
顯示 exportfs: IP:/root/web/webapps/nfs: Function not implemented
這個可能是因爲NFS 客戶端暫時未安裝NFS。等客戶端安裝後再檢查。
5、啓動
service rpcbind start
service nfs start
6、查看狀態
showmount -e 172.17.212.157 (NFS Server本機的IP地址)
顯示:
Export list for 172.17.212.157:
/root/web/webapps/nfs 172.17.212.158
顯示配置的容許連接的NFS 客戶端。
爲確保NFS Server在重啓後能自動運行,在重啓後可執行下showmount -e 172.17.212.157
如果顯示其他信息,則需要執行:
service rpcbind start
service nfs start
NFS Client安裝:
客戶端安裝NFS Client(Tomcat 主機)
yum -y install nfs-utils rpcbind
2. 在客戶端掛載服務器端的共享目錄 (先創建一個/root/web/webapps/nfs/目錄)
mount -t nfs 172.17.212.157:/root/web/webapps/nfs/ /root/web/webapps/nfs/
客戶端啓動nfs
service rpcbind start
在172.17.212.157的/root/web/webapps/nfs下創建一個目錄,比如abc,在客戶端的/root/web/webapps/nfs/目錄下看下是否顯示.
重啓服務器再進入/root/web/webapps/nfs/,沒有發現172.17.212.157的nfs目錄裏新增的文件夾,在/etc/fstab中末尾增加:
172.17.212.157:/root/web/webapps/nfs /root/web/webapps/nfs nfs rsize=8192,wsize=8192,timeo=14,intr
重啓機器,shutdown -r now,
再看/root/web/webapps/nfs,可以看到172.17.212.157中對應目錄的文件夾,說明重啓自動mount成功.(rsize=8192,wsize=8192,timeo=14,intr等參數可考慮如何優化讀寫速度。)
自動mount成功後可加入更多的目錄映射,根據項目,例如:
172.17.212.157:/root/web/webapps/nfs/site/company /root/web/webapps/site/company nfs rsize=8192,wsize=8192,timeo=14,intr
172.17.212.157:/root/web/webapps/nfs/images /root/web/webapps/images nfs rsize=8192,wsize=8192,timeo=14,intr
172.17.212.157:/root/web/webapps/nfs/userfiles /root/web/webapps/userfiles nfs rsize=8192,wsize=8192,timeo=14,intr
172.17.212.157:/root/web/webapps/nfs/uploadImg /root/web/webapps/uploadImg nfs rsize=8192,wsize=8192,timeo=14,intr
172.17.212.157:/root/web/webapps/nfs/upload /root/web/webapps/upload nfs rsize=8192,wsize=8192,timeo=14,intr
172.17.212.157:/root/web/webapps/nfs/searchIndex /root/web/webapps/searchIndex nfs rsize=8192,wsize=8192,timeo=14,intr
172.17.212.157:/root/web/webapps/nfs/pubinfo /root/web/webapps/pubinfo nfs rsize=8192,wsize=8192,timeo=14,intr
172.17.212.157:/root/web/webapps/nfs/WEB-INF/luceneIndex /root/web/webapps/WEB-INF/luceneIndex nfs rsize=8192,wsize=8192,timeo=14,intr
172.17.212.157:/root/web/webapps/nfs/WEB-INF/uploadfiles /root/web/webapps/WEB-INF/uploadfiles nfs rsize=8192,wsize=8192,timeo=14,intr
服務器文件遷移
當服務器進行文件遷移時(比如更換服務器,需要將原服務器的文件遷移到新的服務器),可以考慮的遷移方案:
遷移文件打包
scp命令複製(從原服務器複製到目標服務器)。
find增量備份、增量壓縮及複製。(比如6.1號開始遷移,複製了大量的文件,6.3號全部部署完畢,這期間原服務器增加了一些圖片、文件,需要採用增量複製的方案)。
(稍後補充文檔說明)。
安裝Java環境
使用 jdk-7u80-linux-x64.tar.gz版本。
mkdir /usr/java
將此文件解壓到/usr/java目錄:
tar -xzvf jdk-7u80-linux-x64.tar.gz -C /usr/java
vi /etc/profile 增加以下內容(注意檢查下word裏不要有中文空格):
JJAVA_HOME="/usr/java/jdk1.7.0_80"
JRE_HOME="/usr/java/jdk1.7.0_80/jre"
CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
JAVA_OPTS="-server -Xss256k -Xms1024m -Xmx1024m -XX:MaxNewSize=256m -XX:SurvivorRatio=6 -XX:MaxPermSize=300m -XX:+UseParallelGC -XX:ParallelGCThreads=24 -XX:+UseParallelOldGC -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Dsun.lang.ClassLoader.allowArraySyntax=true -Dfile.encoding=UTF-8"
export JAVA_HOME
export JRE_HOME
export CLASSPATH
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC JAVA_OPTS
ulimit -SHn 65535
以上參數根據實際情況調整。
source /etc/profile使配置生效。
使用java -version查看版本,同時檢查java是否可用。
安裝Tomcat
1、目前選擇 Tomcat版本:
apache-tomcat-7.0.68.tar.gz
解壓到/usr/local目錄 :
tar -xzvf apache-tomcat-7.0.68.tar.gz -C /usr/local
進入/usr/local:
cd /usr/local
更名爲tomcat7:
mv apache-tomcat-7.0.68 tomcat7
3、運行tomcat
cd /usr/local/tomcat7/bin
./startup.sh
顯示
Tomcat started.
然後 cd ..
cd logs
tail -200f catalina.out
檢查日誌輸出.如果發現日誌中出現
Deploying web application directory /usr/local/tomcat7/webapps/host-manager 並長時間卡在這裏不動(通過後顯示INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [134,709] milliseconds.),可關掉tomcat,修改jre中的配置。具體過程:
Ctrl+C 中斷log日誌顯示;
ps -ef|grep tomcat
kill -9 進程號
cd /usr/java/jdk1.7.0_80/jre/lib/security
vi java.security
找到 securerandom.source=file:/dev/urandom
改爲securerandom.source=file:/dev/./urandom
然後再啓動tomcat.
爲了防止針對Tomcat的網絡攻擊,須刪除一些tomcat目錄和文件,須刪除的文件:
cd /usr/local/tomcat7/conf
將tomcat-users.xml刪除或更名。
刪除: rm tomcat-users.xml
更名 mv tomcat-users.xml tomcat-users.old
cd /usr/local/tomcat7/webapps
刪除除ROOT之外的所有的目錄
rm -rf docs
rm -rf examples
rm -rf host-manager
rm -rf manager
注意刪除後,重啓tomcat。
如果需要修改tomcat的服務端口:
須打開/usr/local/tomcat7/conf/server.xml
找到:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
將8080改爲8088,另外因爲一般項目都使用UTF-8字符集,所以redirectPort="8443" 後面須增加:
URIEncoding="UTF-8"
修改後的配置:
<Connector port="8088" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
目前的tomcat沒有部署項目應用,因爲阿里雲默認沒放開8080端口,如果要查看tomcat運行的頁面,需要在nginx服務器中對nginx.conf進行配置。
打開Nginx主機的nginx.conf:
cd /usr/local/nginx/conf
vi nginx.conf
在 server { 上面增加一個負載均衡設置:
upstream mydomain.com
{
server 172.17.212.158:8088 weight=1;
}
見下圖:
下面這段每行左側加#:
改後:
在
下面增加:
location /
{
# root html;
# index index.html index.htm;
# proxy_pass http://openjweb.com/ ;
#proxy_pass http://localhost ;
proxy_pass http://mydomain.com/;
proxy_set_header Host $host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#proxy_connect_timeout 60;
proxy_connect_timeout 300;
proxy_read_timeout 600;
proxy_send_timeout 600;
}
然後重啓nginx:
/usr/local/nginx/sbin/nginx -s reload
因tomcat將8080改爲了8088,檢查tomcat進程(ps -ef|grep tomcat),如果有,使用kill -9 進程號殺掉,啓動tomcat:
/usr/local/tomcat7/bin/startup.sh
訪問nginx對應的外網地址(不帶8088端口),可看到tomcat頁面:
在集羣環境中爲了實現tomcat的集羣會話,一般需要配置Redis作爲分佈式緩存。配置Tomcat+Redis在後面安裝完Redis再做介紹。