Linux伺服器環境部署手冊
1. 環境準備
伺服器兩臺:分別是服務1(10。20。30。39)和服務2(10。20。30。40)。服務1主要是dmz區,部署前端程式碼,安裝nginx服務。服務2主要是內外網區,部署應用程式、redis服務、fastdfs服務(內嵌nginx)等等。注意由於是java環境,需要安裝jdk。
2. 部署步驟
2。1 JDK部分
DMZ區和內網區2臺伺服器都要安裝:
進入/usr/目錄
建立java目錄
上傳jdk-8u181-linux-x64。tar。gz到/usr/java/目錄下
解壓縮 tar -xzvf jdk-8u144-linux-i586。tar。gz
配置環境變數
vi /etc/profile
加入一下內容:
JAVA_HOME=/usr/java/jdk1。8。0_181
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=。:$JAVA_HOME/lib/tools。jar
export PATH JAVA_HOME CLASSPATH
profile生效
source /etc/profile
驗證:
java -version
2。2 redis部分
內外網伺服器10。20。30。39和10。20。30。40上部署redis部分
Redis叢集的安裝包為redis-soft。tar。gz,其中包含redis5。0。5版本的安裝包及叢集配置,redis叢集安裝在10。20。30。39及10。20。30。40兩臺機器,可按照如下步驟進行redis叢集搭建。
第1步:將redis-soft。tar。gz分別上傳至10。20。30。39及10。20。30。40機器;
第2步:root使用者登入10。20。30。39機器,/etc/hosts檔案中新增redis-host主機名對應的ip為10。20。30。39,如vi /etc/hosts新增
10。20。30。39 redis-host
第3步:解壓redis-soft。tar。gz,解壓後的檔案包括redis-5。0。5。tar。gz、redis-cluster。tar。gz;
第4步:安裝redis,執行如下命令:
tar -zxvf redis-5。0。5。tar。gz
cd redis-5。0。5
檢查依賴gcc、tcl(yum list gcc/tcl)
make
make test
make install
第5步:複製redis叢集配置檔案,執行如下命令:
tar -zxvf redis-cluster。tar。gz
mv redis-cluster /
說明:redis-cluster目錄在根/目錄下;~/redis-cluster,同時修改每個叢集的redis。conf
比如:
bind redis-host
port 7002
protected-mode no
pidfile /home/redis/redis-cluster/redis02/redis_7002。pid
logfile “/home/redis/redis-cluster/redis02/redis_7002。log”
dir /home/redis/redis-cluster/redis02
#masterauth yinqihui
#requirepass yinqihui
修改start-redis-cluster。sh檔案中路徑:
redis-server /home/redis/redis-cluster/redis01/redis。conf
redis-server /home/redis/redis-cluster/redis02/redis。conf
redis-server /home/redis/redis-cluster/redis03/redis。conf
第6步:啟動redis:執行如下命令:
。/redis-cluster/start-redis-cluster。sh
第7步:root使用者10。20。30。40機器,在/etc/hosts檔案中新增redis-host主機名對應的ip為10。20。30。40,如vi /etc/hosts新增10。20。30。40 redis-host,然後操作同以上第3步至第6步;
第8步:建立redis叢集,繼續在10。20。30。40機器上進行,執行如下命令:
redis-cli ——cluster create 10。20。30。39:7001 10。20。30。39:7002 10。20。30。39:7003 10。20。30。40:7001 10。20。30。40:7002 10。20。30。40:7003 ——cluster-replicas 1
redis-cli ——cluster create 20。100。32。59:7001 20。100。32。59:7002 20。100。32。59:7003 20。100。32。60:7001 20。100。32。60:7002 20。100。32。60:7003 ——cluster-replicas 1
注意:建立叢集時會提示確認資訊,輸入時輸入完整的yes;
第9步:redis叢集驗證,繼續在10。20。30。40機器進行,執行如下命令:
redis-cli -h 10。20。30。40 -p 7001 -c
進入redis-cli命令列之後,執行set name zhangsan
再執行get name獲取結果
登入10。20。30。39機器,檢視name的值:
redis-cli -h 10。20。30。39 -p 7001 -c
get name
如果獲取到name的值為zhangsan,則叢集部署成功,否則需要結合日誌查詢原因。
注意:清空防火牆:iptables -F
Redis升級需要重新編譯最新的安裝包即可,其他配置都不變。升級包:redis-6。0。16。tar。gz
重啟reids服務在/usr/local/bin/下面,命令:。/redis-server &
驗證redis的客戶端redis-cli在/usr/local/bin下面
2。3 fastdf部分
內外網伺服器10。20。30。39和10。20。30。40上部署fastdfs部分,在/home下建立資料夾fastdfs(命令:mkdir fastdfs)。
FastDfs叢集的安裝包為fastdfs-soft。tar。gz,其中包括fastdfs5。05相關安裝包及叢集配置檔案,可按照如下步驟進行fastdfs叢集搭建:
第1步:將fastdfs-soft。tar。gz分別上傳至10。20。30。39及10。20。30。40機器;
第2步:root使用者登入10。20。30。39機器,在/etc/hosts中新增tracker1-host及tracker2-host主機名,如vi /etc/hosts新增
10。20。30。39 tracker1-host
10。20。30。40 tracker2-host
第3步:解壓fastdfs-soft。tar。gz,解壓後的檔案包括fdfs-conf、fdfs-soft,其中fdfs-conf是叢集配置檔案,fdfs-soft是fastdfs相關安裝包;
第4步:進入fdfs-soft目錄進行fastdfs相關軟體安裝 cd fdfs-soft;
第5步:安裝libfastcommon,執行如下命令:
cd libfastcommon-1。0。7
。/make。sh
。/make。sh install
第6步:安裝fastdfs,執行命令:
mkdir -p /home/fastdfs/fastdfs/storage
mkdir -p /home/fastdfs/fastdfs/tracker
cd fastdfs-5。05
。/make。sh
。/make。sh install
第7步:複製覆蓋配置檔案及啟動指令碼,進入到fdfs-conf目錄,用fdfs-conf目錄下的fdfs_trackerd及fdfs_storaged覆蓋/etc/init。d/目錄下的這兩個檔案;將fdfs-conf/fdfs/目錄下的配置檔案複製到/etc/fdfs/目錄下
cd fdfs-conf
cp fdfs_storaged /etc/init。d/
cp fdfs_trackerd /etc/init。d/
cp fdfs/* /etc/fdfs/
第8步:root使用者登入10。20。30。40機器,在/etc/hosts中新增tracker1-host及tracker2-host主機名,如vi /etc/hosts新增
10。20。30。40 tracker1-host
10。20。30。40 tracker2-host
然後操作同以上第3步至第7步;
修改 /etc/fdfs/storage_ids。conf
100001 group1 tracker1-host
100002 group1 tracker2-host
修改/etc/fdfs下client。conf、storage。conf中
tracker_server=tracker1-host:22122,tracker_server=tracker2-host:22122
修改/etc/fdfs下tracker。conf中
base_path=/home/fastdfs/fastdfs/tracker
修改/etc/fdfs下mod_fastdfs。conf中
base_path=/home/fastdfs/fastdfs/storage
tracker_server=tracker1-host:22122,tracker_server=tracker2-host:22122
store_path0=/home/fastdfs/fastdfs/storage
第9步:fastdfs叢集驗證,分別啟動10。20。30。39及10。20。30。40的fdfs_trackerd及fdfs_storaged,具體操作如下:
/etc/init。d/fdfs_trackerd start
/etc/init。d/fdfs_storaged start
使用fdfs的檔案上傳工具進行檔案上傳測試(在當前目錄下建立一個a。txt檔案),如
fdfs_upload_file /etc/fdfs/client。conf a。txt
如果螢幕出現group1開頭的檔名,則叢集部署成功,否則需要檢視fastdfs日誌進行具體分析。
第10步:安裝nginx,新增fastdfs的nginx擴充套件模組,操作如下:
cd nginx-1。17。4
。/configure ——add-module=。。/fastdfs-nginx-module/src/ ——with-pcre=。。/pcre-8。43 ——with-zlib=。。/zlib-1。2。11
make
make install
第11步:修改nginx配置並啟動nginx,操作如下:
cd /usr/local/nginx/conf
vi /usr/local/nginx/conf/nginx。conf 下
user root
修改server的監聽埠為29999,增加檔案代理配置:
location ~/group([0-9])/M00 {
root /home/fastdfs/fastdfs/storage/data;
ngx_fastdfs_module;
}
如:
啟動nginx,執行/usr/local/nginx/sbin/nginx
啟動之後可以透過fdfs_upload_file命令上傳檔案並透過nginx代理下載檔案進行驗證,如果異常,請檢視nginx及fastdfs日誌進行問題排查。
安裝完成之後建立軟連結:
ln -s /home/fastdfs/fastdfs/storage/data/ /home/fastdfs/fastdfs/storage/data/M00
驗證:
上傳:fdfs_upload_file /etc/fdfs/client。conf a。txt
下載:curl localhost:29999/group1/M00/00/00/oYYBAGLZDtaAFC2GAAAAEhEgUdU042。txt
響應結果:a。txt中的內容
注意:清空防火牆:iptables -F
Fastdfs中的nginx升級需要重新編譯最新的安裝包即可,其他配置都不變。升級包nginx-1。22。0。tar。gz
升級需要關閉原來nginx服務(kill -9 程序號 ),最後重啟nginx服務(。/nginx)
2。4 nginx部分
需要在伺服器20。12。1。19和20。12。1。20上部署
Nginx相關的安裝包為nginx-deps。tar。gz,其中包括nginx及相關依賴模組的安裝檔案,可按照以下步驟進行安裝:
第1步:將nginx-deps。tar。gz分別上傳至20。12。1。19及20。12。1。20機器上/nginx下;
第2步:root登入20。12。1。19機器進行安裝;
第3步:解壓nginx-deps。tar。gz,解壓後的檔案包括nginx-1。17。4、openssl-1。0。2h、pcre-8。43、zlib-1。2。11;
第4步:安裝nginx,操作如下:
cd nginx-1。17。4
。/configure ——with-openssl=。。/openssl-1。0。2h ——with-pcre=。。/pcre-8。43 ——with-zlib=。。/zlib-1。2。11
make & make install
第5步:結合實際業務情況進行nginx代理配置。
vi /usr/local/nginx/conf/nginx。conf 下
user root
error_log /nginx/logs/error。log;
http:
access_log /nginx/logs/access。log;
upstream fdfs_groups {
server tracker1-host:29999 weight=1 max_fails=2 fail_timeout=30s;
server tracker2-host:29999 weight=1 max_fails=2 fail_timeout=30s;
}
upstream vision-manager {
server tracker1-host:18082;
server tracker2-host:18082;
}
Server:
location / {
add_header X-Frame-Options DENY;
root /home/dmz;
index index。html index。htm;
#deny all;
}
location ~/group1{
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_pass http://fdfs_groups;
expires 30d;
}
/**應用*/
location /application-manager/ {
proxy_pass http://vision-manager;
proxy_set_header Host $host;
proxy_set_header X-Forward-For $remote_addr;
client_max_body_size 500m;
}
第6步:。/nginx
注意:清空防火牆:iptables -F
Nginx升級需要重新編譯最新的安裝包即可,其他配置都不變。升級包nginx-1。22。0。tar。gz
升級需要關閉原來nginx服務(kill -9 程序號 ),最後重啟nginx服務(。/nginx)