CentOS操作系統下安裝Java Web應用攻略(上)



vi命令的基本操作:

 a進入編輯模式;

Ctrl+C終止編輯模式;

在非編輯模式按:wq 保存文件退出。

在非編輯模式按:q! 不保存退出。

在非編輯模式按dd,可刪除鼠標所在的當前行。

 

第一章 掛載硬盤

 

  1. 購買阿里雲CentOS主機

     

    注意事項:最好選擇SSD硬盤。

    建議買50G系統盤+ 數據盤,例如150G數據盤,單獨購買數據盤後,登錄CentOS主機需要掛載數據盤。掛載過程,用SSH工具登錄 CentOS

     

  1. 查看硬盤:

    fdisk -l fdisk -lu

    顯示

     

    可以看到/dev/vdb的硬盤大小爲161.1GB

  1. 硬盤格式化

     

       確認數據盤/dev/vdb是新購買的沒有數據的硬盤,執行格式化命令:

     

       mkfs -t ext4 /dev/vdb

       ext4是文件系統格式,/dev/vdb是要格式化的硬盤

    -t ext4 表示將分區格式化成ext4文件系統類型。

     

  1. 格式化硬盤後,需要掛載此硬盤

    先用 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

     

  2. 啓動系統自動掛載硬盤

     

         需要設置在啓動的時候自動掛載硬盤,這樣不用每次重啓機器都使用mount命令,首先查看下硬盤的UUID,使用命令:  blkid 顯示:

     

    複製/dev/vdbUUID,編輯/etc/fstab,使用命令:

    vim /etc/fstab

    按一下a進入插入模式,在末尾增加:

    UUID=db8cc13d-3854-4ea6-ac11-12d6b879698b /root/web   ext4    defaults    0  1

    然後按CRTL+C,再按:wq 並回車

     

  3. 測試自動掛載

       cd /root/web

       建個新目錄 mkdir test

       如果重啓後,cd /root/web , 然後ls查看目錄內容,則應該有test目錄。

       重啓使用 shutdown -r now 命令重啓機器。

     

  1. 安裝Nginx

     

     參考http://www.linuxidc.com/Linux/2016-09/134907.htm

  1. 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

 

 

 

  1. 配置

     進入瞭解壓目錄後,運行:

./configure

 

以上命令是默認安裝。

 

  1. 編譯安裝(在解壓的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程序關聯。

 

  1. NFS安裝

     

    NFS Server安裝:

     

    NFS安裝包括NFS Server安裝和NFS Client端的安裝。

    安裝NFS是爲了集羣環境下,多臺Tomcat應用可以把圖片、htmlcss,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安裝:

 

  1. 客戶端安裝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/

  1. 客戶端啓動nfs

    service rpcbind start

       172.17.212.157/root/web/webapps/nfs下創建一個目錄,比如abc,在客戶端的/root/web/webapps/nfs/目錄下看下是否顯示.

       重啓服務器再進入/root/web/webapps/nfs/,沒有發現172.17.212.157nfs目錄裏新增的文件夾,在/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

 

  1. 服務器文件遷移

     

    當服務器進行文件遷移時(比如更換服務器,需要將原服務器的文件遷移到新的服務器),可以考慮的遷移方案:

  1. 遷移文件打包

  2. scp命令複製(從原服務器複製到目標服務器)

  3. find增量備份、增量壓縮及複製。(比如6.1號開始遷移,複製了大量的文件,6.3號全部部署完畢,這期間原服務器增加了一些圖片、文件,需要採用增量複製的方案)。

     

    (稍後補充文檔說明)。

 

  1. 安裝Java環境

     

  1. 使用 jdk-7u80-linux-x64.tar.gz版本。

  2. mkdir /usr/java

  3. 將此文件解壓到/usr/java目錄:

       tar -xzvf jdk-7u80-linux-x64.tar.gz -C /usr/java

     

  4. 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

 

以上參數根據實際情況調整。

  1. source /etc/profile使配置生效。

  2. 使用java -version查看版本,同時檢查java是否可用。

     

  1. 安裝Tomcat

     

    1、目前選擇 Tomcat版本:

    apache-tomcat-7.0.68.tar.gz

  1. 解壓到/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

tomcat8080改爲了8088,檢查tomcat進程(ps -ef|grep tomcat),如果有,使用kill -9 進程號殺掉,啓動tomcat:

/usr/local/tomcat7/bin/startup.sh

訪問nginx對應的外網地址(不帶8088端口),可看到tomcat頁面:

 

 

在集羣環境中爲了實現tomcat的集羣會話,一般需要配置Redis作爲分佈式緩存。配置Tomcat+Redis在後面安裝完Redis再做介紹。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章