Spark實時項目第一天-Nginx介紹及部署

Nginx

Nginx (“engine x”) 是一個高性能的HTTP和反向代理服務器,特點是佔有內存少,併發能力強,事實上nginx的併發能力確實在同類型的網頁服務器中表現較好,中國大陸使用nginx網站用戶有:百度、京東、新浪、網易、騰訊、淘寶等。

Nginx功能

  1. 反向代理
    正向代理: 最簡單直接的例子就是翻牆,用一個能夠訪問外網的服務器代理你的訪問操作,簡介達到訪問外網的目的,代理的是用戶
    在這裏插入圖片描述
    反向代理:反向代理則是用戶訪問一臺服務器中的業務,根據不同的業務,如下單,支付,收藏都會由用戶操作,而用戶訪問的服務器跳轉到對應的業務服務器,反向代理,服務器代理的是業務集羣。

在這裏插入圖片描述

  1. 負載均衡:將用戶平衡分配到集羣,類似數據傾斜解決
    負載均衡策略: 輪詢:一個一個的來
    權重:那個機器牛逼,權重高,則分配多任務
    備機:替補,平時不幹事,宕機或者數據量大啓用,與權重和輪詢不衝突。

在這裏插入圖片描述
3. 動靜分離:將靜態的數據(如不需要進行JVM操作)放在Nginx機器,直接在本地查找返回。
在這裏插入圖片描述

分發Jar包

在這裏插入圖片描述

安裝Nginx

  1. yum安裝依賴包
sudo yum -y install    openssl openssl-devel pcre pcre-devel    zlib zlib-devel gcc gcc-c++

在這裏插入圖片描述
2. 上傳解壓

在這裏插入圖片描述
3. 安裝依賴包

進入解壓縮目錄,執行
./configure   --prefix=/opt/module/nginx  
編譯加安裝  
make && make install

在這裏插入圖片描述

賦予權限

nginx佔用80端口,默認情況下非root用戶不允許使用1024以下端口
sudo setcap cap_net_bind_service=+eip /opt/module/nginx/sbin/nginx

啓動命令:/usr/local/nginx/sbin目錄下執行  ./nginx
關閉命令:/usr/local/nginx/sbin目錄下執行  ./nginx  -s  stop 
重新加載命令:/usr/local/nginx/sbin目錄下執行  ./nginx  -s reload

查看進程:ps -ef | grep nginx

在這裏插入圖片描述

頁面查看

默認80端口可以不用寫
在這裏插入圖片描述

修改配置文件

修改conf目錄下的nginx.conf文件

// 代理地址,logservers是自己起的名字
proxy_pass http://logservers;
// 等待連接爲10s
proxy_connect_timeout 10; 10; 

// 解釋logservers是什麼東西,weght是權重,可以不加省略爲輪詢
upstream logservers{
	server hadoop102:8080 weight=1;
	server hadoop103:8080 weight=1;
	server hadoop104:8080 weight=1;
}

在這裏插入圖片描述

重啓查看

 sbin/nginx -s reload

已經訪問到了某臺服務器的tomcat,所以會報404
在這裏插入圖片描述

編寫腳本

#!/bin/bash

# spark-gmall-nginx-cluster-logger
# spark實時項目用nginx啓動日誌集羣進行收集日誌
JAVA_BIN=/opt/module/jdk1.8.0_152/bin/java
# log文件存儲位置
PROJECT=spark-log
# 收集日誌jar
APPNAME=demo-0.0.1-SNAPSHOT.jar
# 端口
SERVER_PORT=8080
 
case $1 in
 "start")
   {
 
    for i in hadoop1 hadoop2 hadoop3
    do
     echo "========: $i==============="
    ssh $i  "$JAVA_BIN -Xms32m -Xmx64m  -jar /applog/$PROJECT/$APPNAME --server.port=$SERVER_PORT >/dev/null 2>&1  &"
    done
     echo "========NGINX==============="
    /opt/module/nginx/sbin/nginx
  };;
  "stop")
  { 
     echo "======== NGINX==============="
    /opt/module/nginx/sbin/nginx  -s stop
    for i in  hadoop1 hadoop2 hadoop3
    do
     echo "========: $i==============="
     ssh $i "ps -ef|grep $APPNAME |grep -v grep|awk '{print \$2}'|xargs kill" >/dev/null 2>&1
    done
 
  };;
   esac

在這裏插入圖片描述

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